2

我将 TextFormField 用于我的颤振应用程序搜索字段。当我输入大于 textformfield 宽度的文本时,然后输入的文本被裁剪为完全不可见的一半。请找到我下面的代码和附图,以更好地理解问题。

TextFormField(
      focusNode: focusNode,
      controller: textController,
      decoration: InputDecoration(
        border: InputBorder.none,
        icon: Icon(
          Icons.search,
        ),
        hintText: AppStrings.searchCatHint,
        hintStyle: TextStyle(
            fontSize: 17,),
      ),
      autovalidate: true,
      autocorrect: false,
      autofocus: true,
    );

问题屏幕:

在此处输入图像描述

我在另一个问题中也看到了类似的问题,但没有提供解决方案。 类似问题链接

使用@CarlosSR 建议正确显示文本。但对齐问题如下。

在此处输入图像描述

4

5 回答 5

1

我找到了解决这个问题的方法。

问题描述:在输入新文本时,旧文本应该向左移动,没有任何问题。

解决方案:我已经为我的 TextFormField 指定了一个高度,并使用容器包装。代码如下所示。

Container(
height:40, 
child: TextFormFiled(...),
); 

这对我有用。非常感谢您的所有回复。

于 2020-12-03T19:41:39.037 回答
0

用容器包装 textformfield:

不会发生错误:

Container(
            color: Colors.black12,
            width: 280,
            height: 45,
            child: TextFormField(
              decoration: InputDecoration(
                border: InputBorder.none,
                icon: Icon(
                  Icons.search,
                ),
                hintStyle: TextStyle(
                  fontSize: 17,),
              ),
              autovalidate: true,
              autocorrect: false,
              autofocus: true,
            ),
          ),

错误是填充我猜如果你正在使用:

Container(
            color: Colors.black12,
            width: 280,
            height: 45,
            child: Padding(
              padding: const EdgeInsets.all(8.0),
              child: TextFormField(
                decoration: InputDecoration(
                  border: InputBorder.none,
                  icon: Icon(
                    Icons.search,
                  ),
                  hintStyle: TextStyle(
                    fontSize: 17,),
                ),
                autovalidate: true,
                autocorrect: false,
                autofocus: true,
              ),
            ),
          ),
于 2020-04-18T12:32:42.427 回答
0

这样,您只能在水平轴上滚动小部件,再加上您添加一个填充以使您的文本位于您想要的位置。另外,我建议您检查对齐小部件。

SingleChildScrollView(
scrollDirection: Axis.vertical,
child: Padding(
padding: const EdgeInsets.all(8.0),
child: TextFormField(
      focusNode: focusNode,
      controller: textController,
      decoration: InputDecoration(
        border: InputBorder.none,
        icon: Icon(
          Icons.search,
        ),
        hintText: AppStrings.searchCatHint,
        hintStyle: TextStyle(
            fontSize: 17,),
      ),
      autovalidate: true,
      autocorrect: false,
      autofocus: true,
    ),
),
),
于 2020-04-18T12:38:44.650 回答
0

我也碰巧遇到了确切的问题。我注意到,当我在某个硬编码高度的容器中有一个文本字段时,您可能会遇到此问题。尝试删除容器的高度或仅删除文本字段的底部填充。这将帮助。

于 2020-12-03T05:23:40.693 回答
0

解决方案是使用CupertinoTextField小部件。你可以在这里阅读。

于 2020-12-21T18:05:15.320 回答