Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/219.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 是否有一个SoftInputMode解决方案来显示整个对话框_Android_Android Layout_Android Softkeyboard - Fatal编程技术网

Android 是否有一个SoftInputMode解决方案来显示整个对话框

Android 是否有一个SoftInputMode解决方案来显示整个对话框,android,android-layout,android-softkeyboard,Android,Android Layout,Android Softkeyboard,我有一个带有两个EditText字段的DialogFragment,还有一个带有ImageView的字段。为了在这些字段下面增加其值,它们都位于滚动视图中 问题在于软键盘的调整模式既不显示我的整个对话框片段,也不显示空间 adjustResize导致ScrollView调整并隐藏底部行的大小adjustpan保持ScrollView大小不变,但软键盘与底行重叠 删除滚动视图意味着任一选项都会导致键盘重叠 我想让DialogFragment在屏幕上向上移动而不调整大小。我能做到吗?理想情况下,我希

我有一个带有两个
EditText
字段的
DialogFragment
,还有一个带有
ImageView
的字段。为了在这些字段下面增加其值,它们都位于
滚动视图中

问题在于软键盘的调整模式既不显示我的整个
对话框片段
,也不显示空间

adjustResize
导致
ScrollView
调整并隐藏底部行的大小
adjustpan
保持
ScrollView
大小不变,但软键盘与底行重叠

删除
滚动视图
意味着任一选项都会导致键盘重叠

我想让DialogFragment在屏幕上向上移动而不调整大小。我能做到吗?理想情况下,我希望在我的
布局中保留
滚动视图
,以便更好地支持非常小的屏幕


我找到的唯一解决方案是更改对话框片段本身的窗口选项。显然,在较小的屏幕上,这仍然是一个问题,所以我仍然在寻找更好的答案

@Override
@NonNull
public Dialog onCreateDialog(Bundle savedInstanceState) {

    //I was using android.R.style.Theme_Translucent_NoTitleBar for another issue
    //but I don't think the theme makes any difference to how the window is laid out 
    //that is relevant to the below code
    Dialog dialog = new Dialog(getActivity(), android.R.style.Theme_Translucent_NoTitleBar);
    ... //Do your usual stuff here
    dialog.getWindow().setContentView(...);

    final WindowManager.LayoutParams params = dialog.getWindow().getAttributes();
    params.width = WindowManager.LayoutParams.MATCH_PARENT;
    params.height = WindowManager.LayoutParams.WRAP_CONTENT;
    params.gravity = Gravity.TOP; //this is the important part
    dialog.setCanceledOnTouchOutside(false);

    return dialog;

}