自定义对话框片段在软键盘弹出窗口上调整大小

时间:2014-11-18 04:53:37

标签: android android-fragments

我有一个在较小屏幕上全屏的对话片段,但对于较大的屏幕具有一定的尺寸。

该对话框在页脚中有一个编辑文本字段和几个操作按钮。 我需要调整对话框片段的大小,以便在键盘处于焦点时按钮位于软键盘上方。

在较小的屏幕上,以下代码段可确保对话框调整大小。

<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; 当显示软键盘时,对话框片段和屏幕的自定义屏幕大小会调整大小。

0 个答案:

没有答案