我有一个DialogFragment
有两个EditText
字段,另一个字段有一个ImageView
来增加它们下面的值,它们都位于ScrollView
。
问题是软键盘的调整模式既没有空格也显示我的整个DialogFragment
。
adjustResize
会导致ScrollView
调整大小并隐藏底行。 adjustpan
保持ScrollView
大小不变,但软键盘与底行重叠。
删除ScrollView
表示任一选项都会导致键盘重叠。
我想要的是DialogFragment在不调整大小的情况下向上移动屏幕。我可以做到这一点吗?理想情况下,我希望将ScrollView
保留在我的Layout
中,以便更好地支持非常小的屏幕。
答案 0 :(得分:1)
我找到的唯一解决方案是更改对话框片段本身的窗口选项。显然在较小的屏幕上这仍然是一个问题所以我仍然在寻找更好的答案。
@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;
}