[英]Change TextField underline color to gradient
I'm able to change the outline color of a TextField's
color to a solid color by using the following code:我可以使用以下代码将TextField's
颜色的轮廓颜色更改为纯色:
TextField(
decoration: InputDecoration(
focusedBorder: UnderlineInputBorder(
borderSide: BorderSide(color: Colors.orange),
),
),
),
However, I couldn't change its color to a gradient since it only accepts color as an input.但是,我无法将其颜色更改为渐变,因为它只接受颜色作为输入。 How would I change its underline color to a linear gradient in Flutter?如何在 Flutter 中将其下划线颜色更改为线性渐变?
Though, it seems that there is not a property to change underlined color to gradient color, this effect can be achieved with Stack widget,虽然,似乎没有将下划线颜色更改为渐变颜色的属性,但可以使用 Stack 小部件来实现此效果,
Here is how I tried to do it:这是我尝试这样做的方法:
body: Center(
child: Container(
height: 50,
margin: EdgeInsets.all(
10.0,
),
child: Stack(
children: <Widget>[
TextField(
cursorColor: Colors.red,
decoration: InputDecoration(
hintText: " Enter your text here",
contentPadding: EdgeInsets.symmetric(
vertical: 15.0,
horizontal: 15.0,
),
border: OutlineInputBorder(
borderSide: BorderSide(
color: Colors.white,
width: 0.5,
),
borderRadius: BorderRadius.circular(
10.0,
),
),
),
),
Positioned(
bottom: -1,
child: Container(
height: 10,
width: MediaQuery.of(context).size.width - 20,
decoration: BoxDecoration(
borderRadius: BorderRadius.only(
bottomLeft: Radius.circular(10),
bottomRight: Radius.circular(10),
),
gradient: LinearGradient(
colors: [
Colors.red,
Colors.green,
],
),
),
),
),
],
),
),
),
You can modify it according to your UI.您可以根据您的 UI 进行修改。
Output: Output:
Second Verion with no borders:无边界的第二版:
body: Center(
child: Container(
height: 50,
margin: EdgeInsets.all(
10.0,
),
child: Stack(
children: <Widget>[
TextField(
cursorColor: Colors.red,
decoration: InputDecoration(
hintText: " Enter your text here",
contentPadding: EdgeInsets.symmetric(
vertical: 15.0,
horizontal: 15.0,
),
),
),
Positioned(
bottom: 1,
child: Container(
height: 3,
width: MediaQuery.of(context).size.width - 20,
decoration: BoxDecoration(
gradient: LinearGradient(
colors: [
Colors.red,
Colors.green,
],
),
),
),
),
],
),
),
)
Output: Output:
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.