7

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

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

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

谁能告诉我如何在软键盘上方显示整个对话框?这就是我希望它的样子:

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

谢谢

克拉克

4

4 回答 4

30

你试过这个吗?

为我工作:

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

alertDialog.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE);
于 2012-08-30T04:28:58.540 回答
8

您可能需要手动设置对话框的宽度和高度,以使软输入模式如下所示:

    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 ); 
于 2015-12-25T15:36:45.623 回答
2

创建一个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" 
于 2012-09-13T13:43:07.270 回答
1
 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);
于 2018-07-02T17:34:18.883 回答