Flutter TextField,如何在文本字段内部和上方使用不同的样式

问题描述 投票:1回答:1

我有以下TextField

TextField(
    decoration: InputDecoration(
        labelStyle: TextStyle(
            color: I_WANT_TO_CHANGE_THIS,
        ),
        labelText: widget.label,
    ),
);

如何更改颜色,以便当它在文本字段(提示)内时,它是灰色的,当它浮动在文本字段上方(被聚焦)时,它是黑色的。

flutter flutter-layout
1个回答
0
投票

尝试使用FocusNode

class _MyHomePageState extends State<MyHomePage> {

  FocusNode _focusNode = FocusNode();
  Color color;

  @override
  Widget build(BuildContext context) {

    _focusNode.addListener(() {
      setState(() {
       color = _focusNode.hasFocus ? Colors.blue : Colors.red; 
      });
    });

    return Scaffold(
      body: Center(
        child: TextField(
          focusNode: _focusNode,
          decoration: InputDecoration(
            labelText: 'Label',
            labelStyle: TextStyle(
              color: _focusNode.hasFocus ? Colors.blue : Colors.red,
            )
          ),
          autofocus: false,
        ),
      )
    );
  }
}

请注意,在此特定示例中,文本字段在选择后将始终处于焦点,因为只有一个文本字段。

© www.soinside.com 2019 - 2024. All rights reserved.