0

類似的問題已經出現了幾次,但我發現奇怪的規律性,我認爲不應該發生。鍵盤隱藏方向變化

在其佈局中有ActivityEditText。當用戶點擊該字段時,顯示軟輸入。隨着標記android:windowSoftInputMode="stateUnchanged"被添加到AndroidManifest,在設備方向改變時一切都按預期工作 - 鍵盤保持其狀態。但是,如果存在Fragment,則ActivityEditText位於Fragment之上,則不起作用。在這種情況下,我假設AndroidManifest上的標誌被跳過(標誌只覆蓋Activity),並且在方向更改期間鍵盤消失。

我沒有找到乾淨的解決方案來保持方向變化的鍵盤狀態。我在onActivityCreated()上看到了手動顯示鍵盤的解決方案,但我不喜歡它,因爲它需要在對象中存在某些變量的情況下保持鍵盤可見性狀態,這種變量在方向更改中仍然存在。 我發現如果在Activity中有EditText,即使用戶沒有觸摸它,並且它沒有被聚焦,鍵盤仍保持其狀態,這是完全意外的。

我不能刪除Fragment並僅依靠Activity,因爲Fragments用於ViewPager。但我已經檢查過這種情況,當Fragment直接連接到Activity時也會發生這種情況。

我也發現我檢查過的所有應用程序都以某種方式解決了這個問題。

是否有一個乾淨的解決方案,以保留鍵盤狀態的方向變化與片段?編輯:我也不喜歡android:configChanges="orientation|screenSize"選項。

回答

0

嘗試將此行添加到您的活動清單中

機器人:configChanges =「方向」

它並不完美,但你可以嘗試一下

+0

我忘了提,我在開始時已經拒絕了這個想法:https://stackoverflow.com/a/7990543/1888738。此外,android:configChanges僅適用於後置蜂窩設備上的「orientation | screenSize」標誌。 – Bresiu