Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Flutter - Changing the border color of the OutlineInputBorder

Tags:

flutter

dart

I'm trying to change the border color of the OutlineInputBorder but tried inumerous ways and failed.

I created the whole Theme configuration through the buildDarkTheme() function but I can not change the border color to yellow

Below is the image and the code:

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),                   ],                 ),               ),             )           ],         ),       )     );   } } 

For more references:

Not able to change TextField Border Color

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

like image 324
rafaelcb21 Avatar asked May 14 '18 15:05

rafaelcb21


People also ask

How do you outline border to TextField in Flutter?

To add a border to a TextField/TextFormField in Flutter, you can specify the decoration property and then use the InputDecoration and OutlineInputBorder widget. The OutlineInputBorder widget has the borderSide widget which you can use to pass in the BorderSide widget with width and color parameter to create the border.

How do you change the TextFormField color in Flutter?

You are changing input text color in this line TextStyle(fontSize: 20.0, color: textTheme. button. color) , so in order to set in to white just use Colors. white constant instead of textTheme.


1 Answers

Since July you can now use enabledBorder:

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),     ...   ), ) 

See the full documentation for the new decorators

like image 147
Jannie Theunissen Avatar answered Oct 03 '22 23:10

Jannie Theunissen