簡體   English   中英

啟用文本字段時如何顯示閃爍的 cursor?

[英]How to show a blinking cursor when textfield is enable?

我正在研究按下編輯按鈕啟用文本字段的項目。 現在,我希望用戶現在可以通過顯示閃爍的 cursor 來啟用文本字段。有沒有辦法做到這一點?

要聚焦一個TextField ,您可以給它一個FocusNode並請求聚焦它。 一個例子:

import 'package:flutter/material.dart';

void main() {
  runApp(const MaterialApp(home: MyApp()));
}

class MyApp extends StatefulWidget {
  const MyApp({super.key});

  @override
  MyAppState createState() => MyAppState();
}

class MyAppState extends State<MyApp> {
  bool textFieldEnabled = false;
  late FocusNode myFocusNode;

  @override
  void initState() {
    super.initState();
    myFocusNode = FocusNode();
  }

  @override
  void dispose() {
    myFocusNode.dispose();
    super.dispose();
  }

  void setTextFieldEnabled() {
    setState(() {
      textFieldEnabled = true;
    });
    WidgetsBinding.instance.addPostFrameCallback((_) {
      myFocusNode.requestFocus();
    });
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
        body: Column(children: [
      TextButton(onPressed: setTextFieldEnabled, child: const Text('enable')),
      TextField(enabled: textFieldEnabled, focusNode: myFocusNode)
    ]));
  }
}

請注意,起初我認為您可以只調用myFocusNode.requestFocus(); 更改textFieldEnabled后,但這似乎不起作用。 將它放在WidgetsBinding.instance.addPostFrameCallback中似乎可以解決這個問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM