Dart 如何更改文本字段下划线颜色?
我对飞镖和飞镖都是新手。目前,在我的一个个人项目中使用它Dart 如何更改文本字段下划线颜色?,dart,flutter,Dart,Flutter,我对飞镖和飞镖都是新手。目前,在我的一个个人项目中使用它 decoration: InputDecoration( enabledBorder: UnderlineInputBorder( borderSide: BorderSide(color: Colors.cyan), ), focusedBorder: Un
decoration: InputDecoration(
enabledBorder: UnderlineInputBorder(
borderSide: BorderSide(color: Colors.cyan),
),
focusedBorder: UnderlineInputBorder(
borderSide: BorderSide(color: Colors.cyan),
),
),
decoration: InputDecoration(
enabledBorder: UnderlineInputBorder(
borderSide: BorderSide(color: Colors.cyan),
),
focusedBorder: UnderlineInputBorder(
borderSide: BorderSide(color: Colors.cyan),
),
),
在我所有的表单中,textField的下划线都显示为蓝色。我想把它换成其他颜色。我使用的代码就像
new TextField(
controller: this._emailController,
decoration: new InputDecoration(
hintText: "Enter your email",
labelText: "Email",
labelStyle: new TextStyle(
color: const Color(0xFF424242)
)
),
),
decoration: InputDecoration(
enabledBorder: UnderlineInputBorder(
borderSide: BorderSide(color: Colors.cyan),
),
focusedBorder: UnderlineInputBorder(
borderSide: BorderSide(color: Colors.cyan),
),
),
无法理解如何实现这一点
decoration: InputDecoration(
enabledBorder: UnderlineInputBorder(
borderSide: BorderSide(color: Colors.cyan),
),
focusedBorder: UnderlineInputBorder(
borderSide: BorderSide(color: Colors.cyan),
),
),
注:我知道这里有一个类似的问题。但是,在那里也没有完全解决。另外,还有一个链接看起来和我的类似,但实际上是属于Android开发的,它使用的是JAVA,而不是我在Android应用程序开发中使用的DART(flatter)。因此,请不要对这些链接感到困惑。**请参阅下面的更新或**
decoration: InputDecoration(
enabledBorder: UnderlineInputBorder(
borderSide: BorderSide(color: Colors.cyan),
),
focusedBorder: UnderlineInputBorder(
borderSide: BorderSide(color: Colors.cyan),
),
),
合乎逻辑的答案是使用InputBorder,特别是,并将其作为边框传递给inputdecorator。但是,所有这一切只是告诉InputDecorator is是否应该使用下划线或您指定的任何其他内容
decoration: InputDecoration(
enabledBorder: UnderlineInputBorder(
borderSide: BorderSide(color: Colors.cyan),
),
focusedBorder: UnderlineInputBorder(
borderSide: BorderSide(color: Colors.cyan),
),
),
实际颜色基于主题-来源:
Color _getActiveColor(ThemeData themeData) {
if (isFocused) {
switch (themeData.brightness) {
case Brightness.dark:
return themeData.accentColor;
case Brightness.light:
return themeData.primaryColor;
}
}
return themeData.hintColor;
}
decoration: InputDecoration(
enabledBorder: UnderlineInputBorder(
borderSide: BorderSide(color: Colors.cyan),
),
focusedBorder: UnderlineInputBorder(
borderSide: BorderSide(color: Colors.cyan),
),
),
因此,要更改颜色,请执行以下操作(或为整个应用程序指定主题):
decoration: InputDecoration(
enabledBorder: UnderlineInputBorder(
borderSide: BorderSide(color: Colors.cyan),
),
focusedBorder: UnderlineInputBorder(
borderSide: BorderSide(color: Colors.cyan),
),
),
更新:
decoration: InputDecoration(
enabledBorder: UnderlineInputBorder(
borderSide: BorderSide(color: Colors.cyan),
),
focusedBorder: UnderlineInputBorder(
borderSide: BorderSide(color: Colors.cyan),
),
),
现在,您可以按照预期的方式完成此操作
decoration: InputDecoration(
enabledBorder: UnderlineInputBorder(
borderSide: BorderSide(color: Colors.cyan),
),
focusedBorder: UnderlineInputBorder(
borderSide: BorderSide(color: Colors.cyan),
),
),
装饰:输入装饰(
enabledBorder:UnderlineInputBorder(
borderSide:borderSide(颜色:颜色),
),
FocusedOrder:下划线输入边框(
borderSide:borderSide(颜色:颜色),
),
边框:下划线输入边框(
borderSide:borderSide(颜色:颜色),
),
)
刚用过-:
decoration: InputDecoration(
enabledBorder: UnderlineInputBorder(
borderSide: BorderSide(color: Colors.cyan),
),
focusedBorder: UnderlineInputBorder(
borderSide: BorderSide(color: Colors.cyan),
),
),
它适用于我:)要更改整个应用程序的颜色,请使用的属性
decoration: InputDecoration(
enabledBorder: UnderlineInputBorder(
borderSide: BorderSide(color: Colors.cyan),
),
focusedBorder: UnderlineInputBorder(
borderSide: BorderSide(color: Colors.cyan),
),
),
- 要仅在输入处于焦点时使用颜色(即单击并准备键入):
decoration: InputDecoration( enabledBorder: UnderlineInputBorder( borderSide: BorderSide(color: Colors.cyan), ), focusedBorder: UnderlineInputBorder( borderSide: BorderSide(color: Colors.cyan), ), ),
MaterialApp( ... 主题:主题数据( inputDecorationTheme:inputDecorationTheme( FocusedOrder:下划线输入边框( borderSide:borderSide(颜色:Colors.red) ), ) ) )
- 要始终使用颜色(即使在不对焦时),请同时设置
和enabledBorder
:border
decoration: InputDecoration( enabledBorder: UnderlineInputBorder( borderSide: BorderSide(color: Colors.cyan), ), focusedBorder: UnderlineInputBorder( borderSide: BorderSide(color: Colors.cyan), ), ),
MaterialApp( ... 主题:主题数据( inputDecorationTheme:inputDecorationTheme( FocusedOrder:下划线输入边框( borderSide:borderSide(颜色:Colors.red) ), enabledBorder:UnderlineInputBorder( borderSide:borderSide(颜色:Colors.red), ), 边框:下划线输入边框( borderSide:borderSide(颜色:Colors.red), ), ) ) )
- 需要更改三个边框
decoration: InputDecoration(
enabledBorder: UnderlineInputBorder(
borderSide: BorderSide(color: Colors.cyan),
),
focusedBorder: UnderlineInputBorder(
borderSide: BorderSide(color: Colors.cyan),
),
),
enabledBorder: OutlineInputBorder(
borderSide: BorderSide(color: _type.color),
),
focusedBorder: OutlineInputBorder(
borderSide: BorderSide(color: _type.color),
),
border:
OutlineInputBorder(borderSide: BorderSide(color: _type.color)),
使用TextField中的FocusedOrder属性可以更改下划线颜色,如:
focusedOrder:new UnderlineInputBorder(borderSide:new borderSide(颜色:Colors.black),
您可以在此处找到相同的问题:[和此处][可能是重复的我已经检查了第一个链接。如果你检查了那一个,那么这个问题也没有完全解决。在第二个链接中,这属于Android开发的JAVA not Flatter(DART)。所以基本上,我帮不了我。我尝试了UnderlineInputDecorator
,但无法解决我的问题。啊,好吧。如果有机会,我会看一看并添加一个代码示例,如果没有其他人比我先找到它。没问题。让我看看我还能做些什么。好了,将它更改为修复它。但正如我简短地提到的,您可能最好是为整个应用程序指定主题,然后在需要的任何地方使用它-这样,如果你愿意,你可以更改整个主题=)哦,伙计,我从Gitter那里得到了一个关于将所有内容包装到主题中的答案&它现在起作用了。我不知道所有这些细节。但是,逐步学习。谢谢你的帮助。我想你也应该尝试材质应用程序主题设置。它们可能对整个颜色系统非常有用。@GJJ你能给我任何来源来找到解决方案吗。我如何在输入装饰上应用enabledBorder
。折叠的你的答案应该是最好的答案。谢谢你如何只做一个边框(顶部、左侧、右侧或底部)
decoration: InputDecoration(
enabledBorder: UnderlineInputBorder(
borderSide: BorderSide(color: Colors.cyan),
),
focusedBorder: UnderlineInputBorder(
borderSide: BorderSide(color: Colors.cyan),
),
),