我有一個簡單的DialogFragment
,它包含一個EditText
。當DialogFragment
創建軟鍵盤會立即顯示,通過使用EditText
收益眼前的重點:隱藏軟鍵盤時隱藏對話框片段
mEditText.requestFocus();
getDialog().getWindow().setSoftInputMode(
LayoutParams.SOFT_INPUT_STATE_VISIBLE);
其實,我有什麼本質上是想在這個博客中給出的示例:
http://android-developers.blogspot.co.uk/2012/05/using-dialogfragments.html
當後退按鈕被按下時,我希望DialogFragment
被解僱。實際發生的情況是,第一次後退按鈕會導致軟鍵盤被隱藏。需要進一步後退才能解除DialogFragment
。
我很驚訝,似乎沒有一個簡單的API解決方案(比如設置一個標誌),因爲我曾認爲這是一個常見的要求。
在SO上搜索後,最好的選擇似乎是檢測軟鍵盤被隱藏的時間,然後在該事件中調用dismiss()
。用於檢測軟鍵盤被隱藏這種可能的解決方案是:
EditText with soft keyboard and "Back" button
How to check visibility of software keyboard in Android?
我繼續使用上述解決方案之一之前,有沒有我應該考慮解僱整個的任何其他手段DialogFragment
和一鍵後退按鈕的軟鍵盤?