2013-11-24 108 views
0

我有一個簡單的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和一鍵後退按鈕的軟鍵盤?

回答

0

爲什麼不使用取消按鈕而不是利用後退按鈕?