我是android的新手,我编写了一个应用程序,当用户选择一个东西时,使用Dialog显示数据。这是对话框的外观:
https://docs.google.com/file/d/0B3NUAgD0tB0YOS16azFCWXdSVVE/edit
但是当我点击最后一个EditText输入一些数据时,对话框仍会显示,当我输入第一个字符时,对话框会向下滚动。对话框留在键盘后面,部分部分完全被遮挡。
有人能告诉我如何在软键盘上方显示整个对话框吗?这就是我想要的样子:
https://docs.google.com/file/d/0B3NUAgD0tB0YOFVQYUF0U0JvOEk/edit
由于
克拉克
答案 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);