颤动 - 更改OutlineInputBorder的边框颜色

问题描述 投票:12回答:5

我试图改变qazxsw poi的边框颜色,但尝试了很多方法而且失败了。

我通过OutlineInputBorder函数创建了整个主题配置,但我无法将边框颜色更改为黄色

下面是图片和代码:

buildDarkTheme()

enter image description here

有关更多参考:

import 'package:flutter/material.dart'; void main() => runApp(new MyApp()); const kBlackHalf = const Color(0xFF212121); const kBlackLight = const Color(0xFF484848); const kBlack = const Color(0xFF000000); const kYellow = const Color(0xFFffd600); const kYellowLight = const Color(0xFFffff52); const kYellowDark = const Color(0xFFc7a500); const kWhite = Colors.white; ThemeData buildDarkTheme() { final ThemeData base = ThemeData(); return base.copyWith( primaryColor: kBlack, accentColor: kYellow, scaffoldBackgroundColor: kBlackHalf, primaryTextTheme: buildTextTheme(base.primaryTextTheme, kWhite), primaryIconTheme: base.iconTheme.copyWith(color: kWhite), buttonColor: kYellow, textTheme: buildTextTheme(base.textTheme, kWhite), inputDecorationTheme: InputDecorationTheme( border: OutlineInputBorder( borderSide: BorderSide(color: kYellow) ), labelStyle: TextStyle( color: kYellow, fontSize: 24.0 ), ), ); } TextTheme buildTextTheme(TextTheme base, Color color) { return base.copyWith( body1: base.headline.copyWith(color: color, fontSize: 16.0), caption: base.headline.copyWith(color: color), display1: base.headline.copyWith(color: color), button: base.headline.copyWith(color: color), headline: base.headline.copyWith(color: color), title: base.title.copyWith(color: color), ); } class MyApp extends StatelessWidget { @override Widget build(BuildContext context) { return new MaterialApp( theme: buildDarkTheme(), home: new HomePage(), ); } } class HomePage extends StatefulWidget { @override _HomePageState createState() => new _HomePageState(); } class _HomePageState extends State<HomePage> { String xp = '0'; @override Widget build(BuildContext context) { return new Scaffold( appBar: new AppBar( actions: <Widget>[ new IconButton( icon: Icon(Icons.ac_unit), onPressed: () {}, ) ], ), body: new Container( padding: new EdgeInsets.only(top: 16.0), child: new ListView( children: <Widget>[ new InkWell( onTap: () {}, child: new InputDecorator( decoration: new InputDecoration( labelText: 'XP', border: OutlineInputBorder() ), child: new Row( mainAxisAlignment: MainAxisAlignment.spaceBetween, mainAxisSize: MainAxisSize.min, children: <Widget>[ new Text(this.xp), ], ), ), ) ], ), ) ); } }

Not able to change TextField Border Color

dart flutter
5个回答
10
投票

像这样添加hintColor到你的主题,它应该更改OutlineInputBorder颜色。

https://github.com/flutter/flutter/issues/17592

4
投票

这会将按钮的轮廓颜色更改为蓝色

ThemeData buildDarkTheme() {
  final ThemeData base = ThemeData();
  return base.copyWith(
    primaryColor: kBlack,
    accentColor: kYellow,
    scaffoldBackgroundColor: kBlackHalf,
    primaryTextTheme: buildTextTheme(base.primaryTextTheme, kWhite),
    primaryIconTheme: base.iconTheme.copyWith(color: kWhite),
    buttonColor: kYellow,
    hintColor: YOUR_COLOR,
    textTheme: buildTextTheme(base.textTheme, kWhite),    
    inputDecorationTheme: InputDecorationTheme(
      border: OutlineInputBorder(),
      labelStyle: TextStyle(
        color: kYellow,
        fontSize: 24.0
      ),
    ),
  );
}

2
投票

从7月开始,您现在可以使用enabledBorder:

new OutlineButton(
   borderSide: BorderSide(color: Colors.blue),
) 

请参阅new TextField( decoration: new InputDecoration( enabledBorder: const OutlineInputBorder( // width: 0.0 produces a thin "hairline" border borderSide: const BorderSide(color: Colors.grey, width: 0.0), ), border: const OutlineInputBorder(), labelStyle: new TextStyle(color: Colors.green), ... ), ) 了解新装饰器


0
投票

要更改卡的边框颜色,请使用以下代码

full documentation

0
投票

只需更改ThemeData的hintColor属性,如下所示:

new Card(
      shape: const RoundedRectangleBorder(
        side: BorderSide(color: Colors.blue),
        borderRadius: BorderRadius.all(Radius.circular(15.0)),
      ),
      child: Container(new Text("Text in a card"))
© www.soinside.com 2019 - 2024. All rights reserved.