Flutter - 如何更改 TextField 的边框颜色?

时间:2021-03-17 23:40:15

标签: flutter dart

我开始学习 flutter 并且我想更改 TextField 的边框颜色,因为默认情况下它是灰色的,如我在屏幕截图中所示:

TextField by default

我的应用程序使用黑色背景色,TextField 的边框不可见,只有在聚焦或使用键盘时才可见

normal TextField

focused TextField

我试过 new Theme :

Container(
                  child: new Theme(
                    data: ThemeData(
                      primaryColor: Colors.white,
                      //
                      inputDecorationTheme: InputDecorationTheme(
                          enabledBorder: OutlineInputBorder(
                              borderSide: BorderSide(color: Colors.white)),
                          focusedBorder: OutlineInputBorder(
                              borderSide: BorderSide(color: Colors.white))),
                    ),
                    child: Column(
                      children: [
                        TextField(
                          style: TextStyle(
                            color: Colors.white,
                          ),
                          decoration: InputDecoration(
                            labelText: 'EMAIL',
                            labelStyle: TextStyle(
                              fontFamily: 'Montserrat',
                              fontWeight: FontWeight.bold,
                              color: Colors.white,
                            ),
                          ),
                        ),
                      ],
                    ),
                  )),

它看起来像这样:

TextField

2 个答案:

答案 0 :(得分:0)

Mush 更容易将应用程序主题模式设置为深色,并在确定主题时使用默认的 Theme.dark。深色主题与文本字段等配合得很好。

答案 1 :(得分:0)

Sravan Kumar Nerella 的回答很有帮助,我没有这么想过,但是我继续研究,我不知道可以为容器设置主题,这就是我的代码结果: 希望对其他人有帮助

Container(
                child: Theme(
                  data: new ThemeData.dark(), // HERE
                  child: Column(
                    children: [
                      TextField(
                        style: TextStyle(color: Colors.white),
                        decoration: InputDecoration(
                          labelText: 'EMAIL',
                          labelStyle: TextStyle(
                            fontFamily: 'Montserrat',
                            fontWeight: FontWeight.bold,
                            color: Colors.white,
                          ),
                          focusedBorder: UnderlineInputBorder(
                            borderSide: BorderSide(color: Colors.white),
                          ),
                        ),
                      ),
                    ],
                  ),
                ),
              ),