Sobes.tech
Junior

Чӣ гуна роҳҳои ворид кардани матн дар барнома вуҷуд доранд?

sobes.tech AI

Ҷавоб аз AI

Дарозии асосӣ барои ворид кардани матн дар Flutter чанд роҳ дорад:

  1. Виджети TextField:

    • Виджети стандартӣ барои воридоти як сатрии матн.
    • Имкон медиҳад, ки намуди зоҳирӣ, рафтор, клавиатура, тасдиқ ва контроллерро танзим кунед.
    • Барои майдонҳои ворид кардани номи, почтаи электронӣ, парол ва ғайра мувофиқ аст.
    // Намунаи истифодаи TextField
    TextField(
      decoration: InputDecoration(
        labelText: 'Ном',
        border: OutlineInputBorder(),
      ),
      onChanged: (text) {
        // Ҳалли тағйироти матн
      },
    )
    
  2. Виджети TextFormField:

    • Қапчида баробар бо TextField, ки бо Form ҳамҷоя шудааст.
    • Вайроқро барои тасдиқи воридот ва нигоҳдории маълумоти форма осон мекунад.
    • Дар формаҳо барои ҷамъоварии маълумоти корбарӣ истифода мешавад.
    // Намунаи истифодаи TextFormField
    TextFormField(
      decoration: InputDecoration(
        labelText: 'Email',
      ),
      validator: (value) {
        if (value == null || value.isEmpty) {
          return 'Лутфан, Email-ро ворид кунед';
        }
        return null; // Агар тасдиқ муваффақ бошад, null баргардонед
      },
      onSaved: (value) {
        // Ҳифз кардани арзиш пас аз тасдиқи форма
      },
    )
    
  3. Виджети EditableText:

    • Виджети пастсуръат барои матни таҳриршаванда.
    • Имкониятҳои асосии таҳрирро медиҳад, аммо тарҳи тайёр надорад.
    • Барои сохтани майдонҳои махсуси воридот, масалан, дар муҳаррирҳои матн истифода мешавад.
    // Намунаи истифодаи EditableText (талап мекунад танзими бештар)
    EditableText(
      controller: TextEditingController(), // Контроллер барои идоракунии матн
      focusNode: FocusNode(), // Нод фокус
      style: TextStyle(color: Colors.black), // Стил матн
      cursorColor: Colors.blue, // Ранги курсор
      backgroundCursorColor: Colors.grey, // Ранги пасзаминаи курсор
    )
    
  4. Клавиатураи системӣ:

    • Flutter автоматӣ нишон медиҳад клавиатураи системӣ вақте ки ба виджети воридоти матн фокус дода мешавад.
    • Намуди клавиатура (рақамӣ, ҳарфӣ, email ва ғайра) бо истифода аз хусусияти keyboardType дар TextField ё TextFormField танзим мешавад.
    // Танзими клавиатураи рақамӣ
    TextField(
      keyboardType: TextInputType.number,
    )
    
  5. Клавиатураи фармоишӣ:

    • Мумкин аст клавиатураи худро бо эҷоди виджетҳои тугмаҳо ва коркарди пахшҳо барои тағйир додани матн дар контроллер иҷро кунед.
    • Ин усул барои ҳолатҳои махсус, масалан, дар барномаҳои бонкӣ бо тарҳҳои махсус истифода мешавад.
  6. Паст кардани матн аз буфер:

    • Виджетҳои TextField ва TextFormField ба таври пешфарз дастгирӣ мекунанд, ки матнро аз буфер бо истифода аз менюи контекстӣ гузоранд.
    • Дастрасӣ ба буфер тавассути синфи Clipboard амалӣ мешавад.
    import 'package:flutter/services.dart';
    
    // Гирифтани матн аз буфер
    Future<void> pasteText() async {
      ClipboardData? data = await Clipboard.getData(Clipboard.kTextPlain);
      if (data != null) {
        String? text = data.text;
        // Истифодаи матни гирифташуда
      }
    }
    

Ба вобастагӣ аз вазифа ва талаботи UI, усули мувофиқро барои ворид кардани матн интихоб мекунед. Барои аксар ҳолатҳои стандартӣ, TextField ва TextFormField кофист.