【问题标题】:how to change TextField cursor color in flutter如何在颤动中更改TextField光标颜色
【发布时间】:2021-04-30 00:00:52
【问题描述】:

我在 AppBar() 中使用 TextField 小部件

有一个问题, 如您所见,当文本字段聚焦时,我无法设置光标颜色

通常,文本字段光标在聚焦时会闪烁。

我设置了光标颜色属性, 应用栏,文本字段中的每个颜色属性 但它不起作用 甚至 textfield 提示文本也不起作用。

            appBar: AppBar(
              title: Card(
                margin: EdgeInsets.only(
                    top: common_gap * 1.5, bottom: common_gap * 1.5),
                child: TextField(
                  cursorColor: Constants.kPrimaryOrange,
                  controller: _controller,
                  focusNode: _focusNode,
                  onChanged: (value) {
                    setState(() {
                      _searchText = value;
                    });
                  },
                  decoration: InputDecoration(
                    prefixIcon: Icon(
                      Icons.search,
                      size: 20,
                    ),
                    suffixIcon: _controller.text.length != 0
                        ? IconButton(
                            icon: Icon(
                              Icons.cancel,
                              size: 20,
                              color: _searchText == ''
                                  ? Colors.transparent
                                  : Colors.black87,
                            ),
                            onPressed: () {
                              setState(() {
                                _controller.clear();
                                _searchText = '';
                                _focusNode.unfocus();
                              });
                            },
                          )
                        : Container(),
                  ),

                ),

你能告诉我如何解决这个问题吗??

【问题讨论】:

标签: flutter colors textfield


【解决方案1】:

您可以为您的解决方案更改特定的文本字段光标颜色:

TextField(cursorColor: Colors.white)

但如果你想为你的所有项目更改它,那么你可以查看here

【讨论】:

  • 当我打字时它可以工作,但如果没有文字我看不到光标?
  • 兄弟根据需要更改光标颜色。
【解决方案2】:

你能把它添加到 main.dart 页面的 materialapp 中吗?你会停止应用程序并再次运行它吗?

MaterialApp(
 title: "App Name",
 theme: ThemeData(
  // for iOS
  cupertinoOverrideTheme: CupertinoThemeData(
    primaryColor: Constants.kPrimaryOrange,
  ),
   // for others Android
  cursorColor: Constants.kPrimaryOrange,
home: HomePage(),
 ),
);

【讨论】:

  • 它不起作用~~我猜通常它会起作用,我认为这有点奇怪。
【解决方案3】:

有两种方法可以做到这一点

第一种方法

将颜色直接分配给个人TextFieldTextFormField

TextFormField(
  cursorColor: Colors.green,)

第二种方法

使用TextSelectionThemeData在整个应用程序中分配光标颜色

MaterialApp(
      debugShowCheckedModeBanner: false,
      title: 'Flutter Demo',
      theme: ThemeData(
        primarySwatch: Colors.green,
        textSelectionTheme: TextSelectionThemeData(
          cursorColor: Colors.green
        ),
      ),
      home: LoginScreen(),
    )

输出:

【讨论】:

    猜你喜欢
    • 2019-09-23
    • 2022-08-15
    • 2021-07-05
    • 1970-01-01
    • 2021-12-26
    • 1970-01-01
    • 2021-01-18
    • 2020-02-16
    • 2015-05-28
    相关资源
    最近更新 更多