我有一个在较小屏幕上全屏的对话片段,但对于较大的屏幕具有一定的尺寸。
该对话框在页脚中有一个编辑文本字段和几个操作按钮。 我需要调整对话框片段的大小,以便在键盘处于焦点时按钮位于软键盘上方。
在较小的屏幕上,以下代码段可确保对话框调整大小。
<style name="fullScreenDialog" parent="android:Theme">
<item name="android:windowSoftInputMode">adjustResize</item>
</style>
对于较大的屏幕,尺寸设置如下。
@Override
public void onStart() {
super.onStart();
if (EPHelper.deviceHasLargeScreen()) {
Dialog d = getDialog();
Window w = d.getWindow();
if (dimenH > 0 && dimenW > 0) {
w.setLayout(dimenW, dimenH);
}
我尝试在onViewCreated中使用SOFT_INPUT_ADJUST_RESIZE
@Override
public void onViewCreated(View view, Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
Window w = getDialog().getWindow();
w.setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE);
}
不幸的是,这不起作用。我注释掉代码来设置布局尺寸,并且中提琴可以工作。因此,设置布局参数似乎阻碍了调整大小。
是否有更好的/推荐的方法让这两者一起工作 - &gt; 当显示软键盘时,对话框片段和屏幕的自定义屏幕大小会调整大小。