如何在文本字段的新行中添加数字



我有一个textfield,用户可以在其中输入多行文本。我希望textfield在用户每次按下enter转到新行时对文本进行编号,如下所示:

  1. Lorem ipsum悲哀坐amet,consectetur adipiscing elit。Ut vulputate
  2. Lorem ipsum悲哀坐amet
  3. Lorem ipsum悲哀坐amet,consectetur adipiscing elit。马勒苏阿达的统治者是土耳其人,而不是权贵主义者。Morbi vitae
  4. Lorem ipsum悲哀坐amet,consectetur adipiscing elit。奎斯克-斯克莱里斯克-前欧盟-埃利特-欧盟
  5. Lorem ipsum dolor

我的textfield代码带有编号提示文本:

SingleChildScrollView(
child: Column(
children: [
const Text(
'Instructions:',
style: TextStyle(color: primaryColor),
),
Container(
margin: EdgeInsets.all(14),
padding: EdgeInsets.all(5),
decoration: BoxDecoration(color: mobileSearchColor),
child: TextField(
style: TextStyle(height: 2),
controller: _textAreaController,
keyboardType: TextInputType.multiline,
maxLines: 10,
decoration: const InputDecoration(
contentPadding: EdgeInsets.only(bottom: 5),
hintText: '1.n2.n3.n4.n5.n',
focusedBorder: OutlineInputBorder(
borderSide:
BorderSide(width: 1, color: primaryColor),
),
),
),
),
],
),
),

我看过项目符号列表,但它似乎只显示项目符号列表。稍后我将使用这些列表来显示数据。

您可以使用TextFieldController在textfield中放入任何值,也可以使用controller.text=value放入任何值;在更改的文本字段中应用这些条件。

(1( 检查值是否以\n结尾,然后添加可以这样检查的数字:

onChange: (value) {
if(value.endWith('n')) {
controller.text = value + yourValue;
}
}

(2( 添加后,您必须将光标设置在文本字段的末尾,这样做很简单,如果您不能设置光标位置,您将在这里找到实现。

(3( 此外,当您将该值擦除到文本字段中时,您的value将被提示进行修复。检查文本字段的值长度是否增加或减少到您可以将以前的值存储在任何变量中的程度,然后将其与当前值进行检查。如果以前的值长度小于当前值,请将您的数字或youValue添加或放入textfilled中,否则不执行任何操作不要忘记更新last中的上一个值。

最新更新