Flutter IOS 鍵盤焦點事件處理

来源:https://www.cnblogs.com/XDJcc/archive/2022/06/23/16405715.html
-Advertisement-
Play Games

Flutter IOS 鍵盤焦點 關閉打開鍵盤 Android 的TextField 獲取焦點打開的鍵盤中有關閉鍵盤的箭頭 可以進行關閉鍵盤 IOS 則就不行,它的鍵盤沒有關閉鍵盤的按鈕 就很噁心!! IOS 的輸入框在你輸入完數據之後, 你就沒辦法關閉鍵盤。 雖然你可以滑動界面顯示被隱藏的按鈕,也 ...


Flutter IOS 鍵盤焦點 關閉打開鍵盤

Android 的TextField 獲取焦點打開的鍵盤中有關閉鍵盤的箭頭 可以進行關閉鍵盤
IOS 則就不行,它的鍵盤沒有關閉鍵盤的按鈕 就很噁心!!

IOS 的輸入框在你輸入完數據之後, 你就沒辦法關閉鍵盤。 雖然你可以滑動界面顯示被隱藏的按鈕,也可以 進入新的界面。但是
在新的界面 調用 Navigator.of(context).pop(); 返回輸入框潔面後,你會發現,雖然鍵盤已經彈出 但是你沒辦法進行任何編輯操作。非常噁心!!!

解決的方法也挺簡單的,在這個TextField 組件上綁定 focusNode,通過focusNode控制輸入框的焦點事件。

class TestDemo extends StatelessWidget {
  final FocusNode focusNode = FocusNode();

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(),
      body: GestureDetector(
        onTap: () {
          focusNode.unfocus();
        },
        child: Container(
          color: Colors.transparent,
          alignment: Alignment.center,
          child: TextField(
            focusNode: focusNode,
          ),
        ),
      ),
    );
  }
}

Tips:給TextField的 autofocus設置為false,然後把獲取焦點的事件交給用戶自己。點擊輸入框獲取焦點。點擊鍵盤之外的地方就調用 focusNode.unfocus(); 丟失焦點 關閉鍵盤。

在進行界面跳轉之前 調用 focusNode.unfocus(); 先把輸入框的 焦點丟失。這樣返回的時候 重新獲取輸入框的焦點就能繼續進行編輯了,不會出現返回之後,無法編輯輸入框中的內容。也無法關閉鍵盤的尷尬情景。


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 鏡像下載、功能變數名稱解析、時間同步請點擊 阿裡雲開源鏡像站 準備 作為一個經常在伺服器上游走的後端,需要熟悉不少命令行操作。其中,grep、sed、awk號稱"linux三劍客",使用頻繁,功能強大,本文通過一個實例演示下基本用法。首先準備一個文本文件,命名為text.txt,內容如下: cat text ...
  • 1.官方SDK(帶Freertos)無法編譯和下載解決方案: (1)無法編譯通過:(會報一下奇奇怪怪的錯誤) 32bit MCU官方freertos的SDK編譯不通過可能是基於不同的C語言版本編寫,需要修改配置如下: (2)無法下載:本人遇到的錯誤是這個 “No Algorithm found fo ...
  • 鏡像下載、功能變數名稱解析、時間同步請點擊 阿裡雲開源鏡像站 一、什麼是MQ? 消息隊列(Message Queue,簡稱MQ),從字面意思上看,本質是個隊列,FIFO先入先出,只不過隊列中存放的內容是message而已。 其主要用途:不同進程Process/線程Thread之間通信。 隊列是一種先進先出的 ...
  • 使用yum或dnf解決rpm包的依賴關係。 YUM:Yellowdog Update Modifier。是rpm的前端程式 作用:解決軟體包之間的依賴關係 yum工作原理: yum 伺服器存放rpm包和相關rpm包的元資料庫(一個叫做repodata的文件夾--存放包的列表、依賴關係等信息) yum ...
  • 問題導入 在之前項目的基礎功能實現中,後臺管理和移動端在進行數據訪問的時候,都是直接操作資料庫MySQL。此時的系統有且僅有一臺MySQL伺服器,則可能會出現如下問題 ①、讀和寫所有壓力都由一臺資料庫承擔,壓力大 ②、資料庫伺服器磁碟損壞導致數據丟失,單點故障 解決方案 很簡單,一臺伺服器撐不住,那 ...
  • 資料庫設計的設計內容包括:需求分析、概念結構設計、邏輯結構設計、物理結構設計、資料庫的實施和資料庫的運行和維護。 ...
  • 原文鏈接:走好數據中台最後一公裡,數據服務API是數據中台的標配 視頻回顧:點擊這裡 課件獲取:點擊這裡 一、數據服務API建設背景 在數字化轉型的時代背景下,新需求的大量增長、新技術的不斷迭代,“互聯網化、數字化”進程的不斷深入,越來越多的業務被遷移到互聯網上,產生大量的業務交互和對外服務需求,對 ...
  • E-R圖也稱實體-聯繫圖(Entity Relationship Diagram),它提供了表示實體類型、屬性和聯繫的方法,用來描述現實世界的概念模型。 ...
一周排行
    -Advertisement-
    Play Games
  • 1. 說明 /* Performs operations on System.String instances that contain file or directory path information. These operations are performed in a cross-pla ...
  • 視頻地址:【WebApi+Vue3從0到1搭建《許可權管理系統》系列視頻:搭建JWT系統鑒權-嗶哩嗶哩】 https://b23.tv/R6cOcDO qq群:801913255 一、在appsettings.json中設置鑒權屬性 /*jwt鑒權*/ "JwtSetting": { "Issuer" ...
  • 引言 集成測試可在包含應用支持基礎結構(如資料庫、文件系統和網路)的級別上確保應用組件功能正常。 ASP.NET Core 通過將單元測試框架與測試 Web 主機和記憶體中測試伺服器結合使用來支持集成測試。 簡介 集成測試與單元測試相比,能夠在更廣泛的級別上評估應用的組件,確認多個組件一起工作以生成預 ...
  • 在.NET Emit編程中,我們探討了運算操作指令的重要性和應用。這些指令包括各種數學運算、位操作和比較操作,能夠在動態生成的代碼中實現對數據的處理和操作。通過這些指令,開發人員可以靈活地進行算術運算、邏輯運算和比較操作,從而實現各種複雜的演算法和邏輯......本篇之後,將進入第七部分:實戰項目 ...
  • 前言 多表頭表格是一個常見的業務需求,然而WPF中卻沒有預設實現這個功能,得益於WPF強大的控制項模板設計,我們可以通過修改控制項模板的方式自己實現它。 一、需求分析 下圖為一個典型的統計表格,統計1-12月的數據。 此時我們有一個需求,需要將月份按季度劃分,以便能夠直觀地看到季度統計數據,以下為該需求 ...
  • 如何將 ASP.NET Core MVC 項目的視圖分離到另一個項目 在當下這個年代 SPA 已是主流,人們早已忘記了 MVC 以及 Razor 的故事。但是在某些場景下 SSR 還是有意想不到效果。比如某些靜態頁面,比如追求首屏載入速度的時候。最近在項目中回歸傳統效果還是不錯。 有的時候我們希望將 ...
  • System.AggregateException: 發生一個或多個錯誤。 > Microsoft.WebTools.Shared.Exceptions.WebToolsException: 生成失敗。檢查輸出視窗瞭解更多詳細信息。 內部異常堆棧跟蹤的結尾 > (內部異常 #0) Microsoft ...
  • 引言 在上一章節我們實戰了在Asp.Net Core中的項目實戰,這一章節講解一下如何測試Asp.Net Core的中間件。 TestServer 還記得我們在集成測試中提供的TestServer嗎? TestServer 是由 Microsoft.AspNetCore.TestHost 包提供的。 ...
  • 在發現結果為真的WHEN子句時,CASE表達式的真假值判斷會終止,剩餘的WHEN子句會被忽略: CASE WHEN col_1 IN ('a', 'b') THEN '第一' WHEN col_1 IN ('a') THEN '第二' ELSE '其他' END 註意: 統一各分支返回的數據類型. ...
  • 在C#編程世界中,語法的精妙之處往往體現在那些看似微小卻極具影響力的符號與結構之中。其中,“_ =” 這一組合突然出現還真不知道什麼意思。本文將深入剖析“_ =” 的含義、工作原理及其在實際編程中的廣泛應用,揭示其作為C#語法奇兵的重要角色。 一、下劃線 _:神秘的棄元符號 下劃線 _ 在C#中並非 ...