如何在键盘上方显示对话框

时间:2012-08-30 04:13:59

标签: android

我是android的新手,我编写了一个应用程序,当用户选择一个东西时,使用Dialog显示数据。这是对话框的外观:

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

但是当我点击最后一个EditText输入一些数据时,对话框仍会显示,当我输入第一个字符时,对话框会向下滚动。对话框留在键盘后面,部分部分完全被遮挡。

有人能告诉我如何在软键盘上方显示整个对话框吗?这就是我想要的样子:

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

由于

克拉克

4 个答案:

答案 0 :(得分:26)

你试过这个吗?

为我工作:

http://developer.android.com/reference/android/view/Window.html#setSoftInputMode(int)

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

答案 1 :(得分: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 ); 

答案 2 :(得分: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);

并在清单文件中进行更改

android:windowSoftInputMode="adjustResize|adjustPan" 

答案 3 :(得分:0)

 AlertDialog dialog = new AlertDialog.Builder(this).create();
 dialog.show();
 Window window = dialog.getWindow();
 window.clearFlags(WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE | WindowManager.LayoutParams.FLAG_ALT_FOCUSABLE_IM);
 window.setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_VISIBLE);