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;
}