我正在尝试使用 textField 在 flutter 中获取用户输入,但我想将其作为项目符号列表。我想我可能必须使用一个名为 flutter_markdown 的包,但我仍然不知道我该怎么做。 就像每一行都应该自动以项目符号开头。
最佳答案
你可以这样做的一种方法是这样的。
class MyWidget extends StatefulWidget {
@override
_MyWidgetState createState() => _MyWidgetState();
}
class _MyWidgetState extends State<MyWidget> {
TextEditingController tc = TextEditingController();
int currentTextLength = 0;
@override
Widget build(BuildContext context) {
return TextField(
maxLines: 4,
controller: tc,
onChanged: (String newText){
if(newText[0] != '•'){
newText = '• ' + newText;
tc.text = newText;
tc.selection = TextSelection.fromPosition(TextPosition(offset: tc.text.length));
}
if(newText[newText.length - 1] == '\n' && newText.length > currentTextLength){
tc.text = newText + '• ';
tc.selection = TextSelection.fromPosition(TextPosition(offset: tc.text.length));
}
currentTextLength = tc.text.length;
}
);
}
}
注意:这不是一个完美的解决方案。因为如果您开始编辑现有文本中间的文本,它不会放置要点。但也许这可以给你一个方向的开始。
关于flutter - 在 flutter 中生成项目符号点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63464692/