【问题标题】:In Flutter TextField when I have set the text directrion as 'Right to Left" , some symbols setting into beginning of the line在 Flutter TextField 中,当我将文本方向设置为“从右到左”时,一些符号设置为行首
【发布时间】:2026-02-12 17:05:01
【问题描述】:

我想用 Flutter 做一个简单的计算器,所以在 TextField 中,我将 TextDirection 设置为从右到左。

 child: TextField(
            textDirection: TextDirection.rtl,
            style: Theme.of(context).textTheme.title,
            showCursor: true,
            readOnly: true,
            controller: displayController,
            decoration: InputDecoration(
                border: OutlineInputBorder(
                  borderRadius: BorderRadius.circular(5),
                )
            ),
          ),

当我按下一个凸起的按钮时,onPressed 方法就是这样工作的,

void digitHandler(String char) { displayController.text=displayController.text+char; }

这个String char参数根据按钮的变化而变化。

但是当我按下 '.'符号光标移动到该行的开头。

在这里,我按下了 5,6,然后相应地按下了 dot(.)。但它显示“.56”:

Button onPressed 方法没有问题,TextField Widget 也没有问题。

【问题讨论】:

    标签: flutter flutter-layout


    【解决方案1】:

    是的。它的一种错误。您可以删除textDirection 并尝试textAlign: TextAlign.right

    【讨论】:

      【解决方案2】:

      我不确定为什么会这样。 如果您正在构建一个计算器并想要一个显示器,那么您可以只使用一个文本小部件并将您的文本/数字相应地添加到状态中。

      【讨论】: