焦点を合わせたときにlabelText
の色を変更しようとしています。テキストの色は変更できますが、フォーカスしているときは変更できません。
ヒントのテキストの色とラベルのテキストの色をすべて試しましたが、役に立ちません。
Container(
padding: EdgeInsets.fromLTRB(15, 10, 15, 0),
child: TextFormField(
cursorColor: Colors.lightGreen,
keyboardType: TextInputType.phone,
decoration: InputDecoration(
labelText: 'Phone Number',
hintText: 'Enter a Phone Number',
focusedBorder: OutlineInputBorder(
borderSide: BorderSide(
color: Colors.lightGreen
)
),
border: OutlineInputBorder(
borderSide: BorderSide()
),
)
),
),
これが何が起こっているかの画像です:
Flutterクックブックのフォーカスとテキストフィールド レシピを確認してください。
基本的に、次のことを行う必要があります。
FocusNode
プロパティを作成します。TextFormField
に追加します。TextFormField
をタップするたびにフォーカスリクエストを追加します。FocusNode
プロパティを作成しますclass CustomTextFormFieldState extends State<AuthTextFormField> {
FocusNode _focusNode;
...
@override
void initState() {
super.initState();
_focusNode = FocusNode();
}
@override
void dispose() {
_focusNode.dispose();
super.dispose();
}
TextFormField
に追加します@override
Widget build(BuildContext context) {
return TextFormField(
focusNode: _focusNode,
...
TextFormField
をタップするたびにフォーカスリクエストを追加しますsetState
を使用することを忘れないでください:
void _requestFocus(){
setState(() {
FocusScope.of(context).requestFocus(_focusNode);
});
}
メソッドをTextFormField
のonTap
プロパティに追加します。
@override
Widget build(BuildContext context) {
return TextFormField(
focusNode: _focusNode,
onTap: _requestFocus,
...