2013-05-02 21 views
13

我有一個dialogfragment,其中包含一些內容,包括EditText字段。
不幸的是,當我點擊EditText字段時,軟鍵盤會覆蓋對話框的解除按鈕。這是我用DialogFragment無法用SOFT_INPUT_ADJUST_PAN平移

getDialog().getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE); 

不幸的是,當我這樣做,對話框收縮,其他項目也得到覆蓋解決的問題。我嘗試使用SOFT_INPUT_ADJUST_PAN代替,但只調整了包含的活動,對話框片段本身並未移動,解除按鈕仍處於覆蓋狀態。有沒有什麼辦法可以製作對話框片段?

我的相關dialogfragment代碼如下所示:

@Override 
    public void onViewCreated(View view, Bundle savedInstanceState) { 
     super.onViewCreated(view, savedInstanceState); 
     getDialog().getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_PAN); 
     mContactSupportView.findViewById(R.id.compose_message).clearFocus(); 
    } 
+0

您是否嘗試將代碼放在onresume上,而我發現它更可靠,然後在onPause中將其關閉,如果這就是您想要的。 – 2013-07-14 10:20:28

+0

問題解決方案的運氣如何? – Junaid 2013-07-30 15:06:44

+0

與解決方案的運氣?請幫忙 – 2017-03-10 07:14:08

回答

1

對話框佈局ATTR。應該是match_parent。當打開鍵盤打開然後伸展您的對話框佈局。如三星銀河「創建新文件夾」對話框。

0

有同樣的問題。使用

getDialog().getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_PAN); 

在DialogFragment的onCreateView但被平移的唯一的事情是它背後的活動。

問題是我將對話框的高度設置爲MATCH_PARENT。將高度更改爲精確值後,DialogFragment正確平移。