【问题标题】:Generate bullet points in flutter在颤振中生成要点
【发布时间】:2020-12-07 09:45:37
【问题描述】:

我正在尝试使用颤振中的文本字段来获取用户输入,但我想将其作为项目符号列表。我想我可能必须使用一个名为 flutter_markdown 的包,但我仍然不知道该怎么做。 就像最后一行应该自动以项目符号开头。

【问题讨论】:

    标签: flutter dart flutter-layout textfield


    【解决方案1】:

    如果你想拥有一个具有项目符号功能的文本字段,这个包可能适合你:

    https://pub.dev/packages/zefyr

    如果你自己写的话会很复杂。

    查看它的示例代码以了解如何使用:

    https://github.com/memspace/zefyr/tree/master/packages/zefyr/example/lib

    【讨论】:

      【解决方案2】:

      你可以这样做的一种方法是这样的。

      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;
            }
          );
        }
      }
      

      注意:这不是一个完美的解决方案。因为如果您开始在现有文本的中间编辑文本,它不会放置项目符号。但也许这可以给你一个方向的开始。

      【讨论】:

      • 你能帮我解决这个问题吗,因为我已经尝试过但仍然无法解决这个问题,我们无法在中间或开头插入项目符号。跨度>
      【解决方案3】:

      如果你想要一个文本字段的要点列表,flutter_markdown 可能不适合你。因为它显示的是降价文本。

      TextFormField(
                    decoration: InputDecoration(
                      border: InputBorder.none, prefix: Text("."), // Or a Dot image
                    ),
                  ),
      

      【讨论】:

      • 我希望该项目符号是可编辑的,这意味着用户应该能够随时删除项目符号。一旦用户移动到下一行,新的项目符号点也应该添加到新行中。
      猜你喜欢
      • 2022-08-17
      • 2018-12-01
      • 1970-01-01
      • 2018-02-11
      • 1970-01-01
      • 2020-11-19
      • 2020-03-11
      • 2021-08-08
      • 1970-01-01
      相关资源
      最近更新 更多