Flutter中TextField的标签文本添加两种颜色

问题描述 投票:0回答:2

我需要为TextField()的labelText设置两种不同的颜色。我有一个实现 TextField 的功能请求,其标题将显示为“必填*”,但我需要的区别是为标签文本设置两种不同的颜色,例如“必填”为绿色,“*”仅为红色。

TextField(
                  controller: _controller,
                  decoration: new InputDecoration(
                    hintText: 'Search here',
                    labelStyle: TextStyle(),
                    labelText: 'Required*' //make 'Required' green and '*' red color
                  ),
                  onChanged: (str) {
                    //need to implement debounce
                  }
              )
flutter textfield text-styling
2个回答
0
投票

嘿,这个计划是可以实施的。但这有点棘手。您需要的第一件事是一个堆栈小部件。 其中有一个 TextField 小部件和一个 Positioned 小部件。当您在文本字段中输入内容时,暂时保持相同的颜色。然后您可以使用 Positioned Widget 覆盖所需的位置。 我之前在项目中就是这样实现的。 请记住,在验证字段时,位置可能会滑动。不要忽视边缘情况。


0
投票

InputDecoration 中有一个属性,即 label。
如果使用 label 属性,则不能使用 labelStyle 和 labelText。
你可以像这样使用它。

label: RichText(
  text: TextSpan(children: <TextSpan>[
    TextSpan(
        text: "Required",
        style: TextStyle(color: Colors.Black),
    TextSpan(
      text: "*",
      style: TextStyle(color: Colors.Red),
    ),
  ]),
)
© www.soinside.com 2019 - 2024. All rights reserved.