Flutter中OutlineInputBorder边框颜色修改失败求助
解决OutlineInputBorder边框颜色不生效的问题
我看了你的代码和截图,问题出在你在InputDecorator里显式定义了border: OutlineInputBorder(),这会直接覆盖你在主题InputDecorationTheme中配置的边框样式,所以主题里设置的黄色边框没生效。
两种解决方案:
方案一:全局应用主题的边框样式
如果你希望所有的InputDecorator和TextField都使用主题里定义的黄色边框,只需要去掉InputDecorator中的border参数即可,它会自动继承主题的配置:
new InputDecorator( decoration: new InputDecoration( labelText: 'XP', // 移除这里的border: OutlineInputBorder() ), child: new Row( mainAxisAlignment: MainAxisAlignment.spaceBetween, mainAxisSize: MainAxisSize.min, children: <Widget>[ new Text(this.xp), ], ), )
方案二:单独给这个InputDecorator设置黄色边框
如果你只想让这个特定的InputDecorator使用黄色边框,也可以直接在它的border参数里指定颜色,不用依赖主题:
new InputDecorator( decoration: new InputDecoration( labelText: 'XP', border: OutlineInputBorder( borderSide: BorderSide(color: kYellow) ) ), child: new Row( mainAxisAlignment: MainAxisAlignment.spaceBetween, mainAxisSize: MainAxisSize.min, children: <Widget>[ new Text(this.xp), ], ), )
另外补充一点:Flutter的InputDecoration中,除了border,还有enabledBorder、focusedBorder等状态边框,如果需要在不同状态下保持黄色边框,也可以在主题或者单独的InputDecoration里配置这些属性,比如:
inputDecorationTheme: InputDecorationTheme( border: OutlineInputBorder( borderSide: BorderSide(color: kYellow) ), enabledBorder: OutlineInputBorder( borderSide: BorderSide(color: kYellow) ), focusedBorder: OutlineInputBorder( borderSide: BorderSide(color: kYellowLight) ), labelStyle: TextStyle( color: kYellow, fontSize: 24.0 ), ),
这样不管输入框是普通状态还是聚焦状态,边框都会是黄色系的样式啦。
内容的提问来源于stack exchange,提问作者rafaelcb21
相关产品推荐
相关产品推荐

