dart – Flutter – 更改OutlineInputBorder的边框颜色

前端之家收集整理的这篇文章主要介绍了dart – Flutter – 更改OutlineInputBorder的边框颜色前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在尝试更改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,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

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

解决方法

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

ThemeData buildDarkTheme() {
  final ThemeData base = ThemeData();
  return base.copyWith(
    primaryColor: kBlack,hintColor: YOUR_COLOR,inputDecorationTheme: InputDecorationTheme(
      border: OutlineInputBorder(),);
}

猜你在找的Flutter相关文章