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