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

wir*_*uma 5 flutter flutter-layout

我有以下几点TextField

TextField(
    decoration: InputDecoration(
        labelStyle: TextStyle(
            color: I_WANT_TO_CHANGE_THIS,
        ),
        labelText: widget.label,
    ),
);
Run Code Online (Sandbox Code Playgroud)

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

Noo*_*les 7

尝试使用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,
        ),
      )
    );
  }
}
Run Code Online (Sandbox Code Playgroud)

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