【问题标题】:Setting dialog width in Android 4在 Android 4 中设置对话框宽度
【发布时间】:2012-08-01 21:47:57
【问题描述】:

我在使用自定义视图的应用程序中有许多对话框。在 Android 4 之前,这些对话框的高度和宽度会根据内容进行调整。在 Andorid 4 模拟器中,这种行为已经改变。看起来宽度会拉伸以容纳内容,但它有一个最小尺寸,低于它不会去。我可以使对话框更宽,但对于狭窄的内容,对话框不会像我预期的那样缩小。因此,我的内容显示在一个超宽对话框的左侧。一切都在 3.0 上完美运行。我试过了:

dialog.setContentView(R.layout.help_dialog);
dialog.getWindow().setLayout(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);

这没有效果。标题的内容也不会强制对话框扩展。任何想法都非常感谢。

【问题讨论】:

  • 也有同样的问题? ,有答案吗?

标签: android dialog width android-4.0-ice-cream-sandwich


【解决方案1】:

我遇到了同样的问题 - 用它解决了它:

final Dialog help = new Dialog(this);
WindowManager.LayoutParams lp = new WindowManager.LayoutParams();
lp.copyFrom(help.getWindow().getAttributes());

lp.width = (int) (width);
lp.height = (int) (height);

help.show();
help.getWindow().setAttributes(lp);

【讨论】:

    【解决方案2】:

    我发现您可以在可绘制的 xml 中设置对话框的边距和填充

        Dialog dialog = new Dialog(this);
    
        dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
        dialog.getWindow().setBackgroundDrawableResource(r.drawable.your_drawable);
        dialog.getWindow().setContentView(R.layout.your_custom_dialog_layout);
        dialog.getWindow().getAttributes().width = LayoutParams.FILL_PARENT;
        dialog.show();
    

    看看 r.drawable.your_drawable

    <?xml version="1.0" encoding="utf-8"?>
    <layer-list>
        <item
            xmlns:android="http://schemas.android.com/apk/res/android"
            android:left="70dp"
            android:right="70dp">
            <shape android:shape="rectangle" >
                <solid android:color="@color/white" />
                <corners android:radius="4dp" />
                <padding
                    android:bottom="70dip"
                    android:left="70dip"
                    android:right="70dip"
                    android:top="70dip" />
            </shape>
        </item>
    </layer-list>
    

    通过设置项目 android:right/left 来设置drawable的边距。 使用形状填充,您可以确保 custom_dialog_layout 中的字段不超过对话框背景的宽度。

    希望对你有所帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-02-07
      • 1970-01-01
      • 1970-01-01
      • 2018-05-08
      • 2011-12-31
      • 2011-11-06
      • 1970-01-01
      • 2012-09-13
      相关资源
      最近更新 更多