[英]Open dialog on tap in TextField before keyboard opens - Flutter
在 TextField 中點擊會使其獲得焦點並彈出鍵盤。 在她/他輸入文本字段之前,我需要向用戶顯示一個帶有選擇的對話框。
我可以做到,但它很丑:首先 TextField 獲得焦點並且鍵盤出現,然后彈出對話框並且鍵盤消失(因為 TextField 失去焦點)。 然后焦點回到點擊的 TextField 上,鍵盤又回來了。
我想避免所有的起伏,我不能添加任何額外的按鈕來從其他地方調用對話框,然后點擊 TextField。
有沒有辦法讓對話框首先出現(沒有鍵盤出現),然后選擇焦點轉到點擊的文本字段?
你可以遵循一個簡單的技巧。 TextField 有一個只讀屬性,您可以在該只讀屬性上使用標志。 當用戶從彈出窗口中選擇一個選項時,將焦點更改為該 TextField。
bool readOnly = true;
FocusNode f1 = FocusNode();
TextFormField(
read-only: readOnly ,
focusNode: f1,
decoration: InputDecoration(
border: OutlineInputBorder(
borderRadius: BorderRadius.circular(4.0)
),
),
style: TextStyle(
color: Colors.orange,
fontSize: 15.0,
),
),
選擇時在對話框代碼上:
readOnly = false;
FocusScope.of(context).requestFocus(f1);
將焦點節點的 map 存儲在范圍模型/上下文提供程序中
檢查 map 是否應該在特定焦點節點上打開對話框。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.