Flutter 文本输入

在移动应用开发中,文本输入是一个基本且常见的功能。Flutter 提供了多种控件来实现这一功能,其中最常用的是 TextFieldTextFormField。这两个组件都用于收集用户输入的文本数据,但它们在一些特定场景下有着不同的用途和优势。

TextField 组件

基本使用

TextField 是一个简单的文本输入框,可以用来接收用户的文本输入。下面是一个简单的示例:

-- -------------------- ---- -------
------ --------------------------------

---- ------ -
  ----------------
-

----- ----- ------- --------------- -
  ---------
  ------ ------------------ -------- -
    ------ ------------
      ----- ---------
        ------- ------------- --------------- ------
        ----- -------
          ------ --------
            -------- ----- ---------------------
            ------ ----------
              ----------- ----------------
                ---------- --------
                ------- ---------------------
              --
            --
          --
        --
      --
    --
  -
-

控制文本显示

通过 obscureText 属性,可以将输入的文本以点号或其他字符代替,常用于密码输入:

自定义输入提示

通过 hintText 可以为用户提供一些输入提示信息:

文本输入监听

可以通过设置 onChanged 回调函数来监听文本变化,并进行相应的处理:

-- -------------------- ---- -------
----------
  ---------- ------- -
    -----------------------
  --
  ----------- ----------------
    ---------- --------
    ------- ---------------------
  --
-

TextFormField 组件

TextFormFieldTextField 的封装,它增加了表单验证的功能,适合用于需要验证用户输入的场景。

基本使用

TextField 类似,TextFormField 也可以用来创建文本输入框:

-- -------------------- ---- -------
------ --------------------------------

----- ------ ------- -------------- -
  ---------
  ------------ ------------- -- ---------------
-

----- ------------ ------- ------------- -
  ----- -------- - -----------------------

  ---------
  ------ ------------------ -------- -
    ------ -----
      ---- ---------
      ------ -------
        --------- -
          --------------
            ----------- -------------------------- -------
            ---------- ------- -
              -- ------ -- ---- -- -------------- -
                ------ ---------
              -
              ------ -----
            --
          --
          ---------------- ----
          ---------------
            ---------- -- -
              -- ---------------------------------- -
                -- ------
                ----------------
              - ---- -
                -- ----
                ---------------
              -
            --
            ------ -----------
          --
        --
      --
    --
  -
-

---- ------ -
  ------------------------ -----------
-

验证规则

通过 validator 属性,可以对输入的数据进行验证,确保其符合预期格式:

-- -------------------- ---- -------
--------------
  ----------- -------------------------- ------
  ---------- ------- -
    -- ------ -- ---- -- ------------------------------------------------------------- -
      ------ -------------
    -
    ------ -----
  --
-

自动填充

TextFormField 支持自动填充功能,可以在用户输入时提供自动补全建议:

总结

TextFieldTextFormField 是 Flutter 中用于文本输入的两个重要组件。前者简单易用,适用于大多数文本输入场景;后者则更适用于需要表单验证和自动填充功能的应用。了解这些组件的基本用法和高级特性,可以帮助开发者构建出更加丰富和灵活的用户界面。

纠错
反馈