如何在低版本的 Android 系統使用 Compose clearfocus

1 min

前言

公司的 App 有個需求是點擊空白處需要把 Focus 在輸入框的欄位取消焦點 + 鍵盤收起來,原本有寫一個 Modifier extension 來處理這一類的事情,結果在測試的時候發現 Android 8 點擊空白處會瞬間收起鍵盤,然後又把鍵盤叫出來。

定位問題

搭配 onFocusChanged 來查看,收下鍵盤的時候確實會觸發 Inactive 的狀態,但會看到馬上又會觸發 Active,所以鍵盤才會一收下去馬上又上來。

解決方法

我在輸入框的 Composable 元件最上層 Modifier 添加 focusable 讓舊系統走一遍流程,因為我有搭配 focusRequester,實驗發現如果 focusable 沒有在 focusRequester 之前,focusRequester 也會失效。

Comments

Loading comments...