2012-08-30 26 views
4

我是一名android新手,我編寫了一個應用程序,使用對話框顯示數據,當用戶選擇一件事情時。這是該對話框的外觀:如何顯示鍵盤上方的對話框

https://docs.google.com/file/d/0B3NUAgD0tB0YOS16azFCWXdSVVE/edit

但是,當我在最後的EditText點擊進入一些數據,該對話框還顯示,當我輸入的第一個字符,對話框向下滾動。對話框停留在鍵盤後面,部分零件完全被遮蓋。

任何人都可以告訴我如何顯示軟鍵盤上方的整個對話框?這是我想怎麼看:

https://docs.google.com/file/d/0B3NUAgD0tB0YOFVQYUF0U0JvOEk/edit

感謝

克拉克

回答

3

您可能需要設置對話框的寬度和高度,以便使軟輸入模式工作,這樣手動:

WindowManager.LayoutParams params = window.getAttributes(); 
    params.width = WindowManager.LayoutParams.MATCH_PARENT; 
    params.height = WindowManager.LayoutParams.MATCH_PARENT; 
    params.gravity = Gravity.CENTER; 
    window.setAttributes(params); 
    window.setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE); 
+1

中明確聲明此代碼的最後一行完全不正確! 對於'SOFT_INPUT_ADJUST_PAN'來自android [文檔](https://developer.android.com/reference/android/view/WindowManager.LayoutParams.html#SOFT_INPUT_ADJUST_PAN): 這個**不能**與'SOFT_INPUT_ADJUST_RESIZE '; – Stanislav

+0

看來你是對的。我之前沒有查看過這些文檔,因此互聯網上充滿了我寫在這裏的例子。我正在修復我的答案。謝謝你的催促。 –

1

創建一個XML文件名style.xml <style name="FullHeightDialog" parent="android:style/Theme.Dialog"> <item name="android:windowNoTitle">true</item> <item name="android:windowSoftInputMode">stateUnchanged</item> <item name="android:windowBackground">@color/dialog_transparent</item> </style> 然後實現

這個工作對我來說,希望它會爲你的作品也。 final Dialog dialog = new Dialog(this , R.style.FullHeightDialog);

還做你的mainefest文件更改

android:windowSoftInputMode="adjustResize|adjustPan" 
+1

'adjustPan'不能與'adjustResize'組合。在文檔 – 4emodan