dart 如何在Flutter中动态控制TextField中的hintText

k10s72fa  于 12个月前  发布在  Flutter
关注(0)|答案(1)|浏览(102)

我在Flutter中有一个TextField,我希望它以一个像“math”这样的提示开始,带有轻微的不透明度,但是当用户开始输入时,无论他们输入什么,都保持为hintText,不透明度设置为1,类似于苹果时钟应用程序为计时器设置标签时,这是我的代码:
TextField:

TextField(
                  decoration: InputDecoration(
                    border: InputBorder.none, // Remove underline
                    hintText: 'Hint', // Add prompt text
                    hintStyle: TextStyle(
                      fontSize: 17,
                      color: Colors.grey.withOpacity(0.7),
                    ),
                  ),
                  controller: taskEditingController,
                ),

字符串
和控制器:

//to control input of New Task TextEditing Controller
    final textEditingControllerProvider =
        Provider.autoDispose((ref) => TextEditingController());

    final taskEditingController = textEditingControllerProvider;


如果我使用taskEditing控制器,它只是保持为空,无论用户输入什么,都应该留在屏幕上,只在导航时处理,就像在他们的时钟应用程序中设置苹果计时器上的标签一样。

jm2pwxwz

jm2pwxwz1#

我不能100%确定你到底想实现什么(我不使用苹果).但我认为下面的代码可能是你正在寻找的,你可以省略提供程序(甚至控制器),并改变hintText每次用户完成一些输入按下“回车”:

TextField(
      onSubmitted: (String text) => setState(() {
        hintText = text;
      }),
      decoration: InputDecoration(
        border: InputBorder.none, // Remove underline
        hintText: hintText, // Add prompt text
        hintStyle: TextStyle(
          fontSize: 17,
          color: Colors.grey.withOpacity(0.7),
        ),
      ),
      controller: TextEditingController(),
    ),

字符串
以及没有提供者的控制器:
final taskEditingController = TextEditingController();
以及要覆盖的初始提示的hintText属性:
String hintText = "math";

相关问题