windowMinWidthMajor和android:windowMinWidthMajor有什么区别

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (3)
  • 关注 (0)
  • 查看 (735)

我想为ProgressDialog设置一个合适的样式。我喜欢默认的,但我想自定义它。我试过使用AppCompat对话框,但它们都为我的Dialog设置了一些奇怪的宽度和高度。

我发现从MaterialDialog扩展可以解决这个问题,所以这段代码可以工作:

<style name="ProgressDialogTheme" parent="MaterialBaseTheme.AlertDialog" >
</style>

这是因为MeterialDialog本身设置了自定义宽度

<style name="MaterialBaseTheme.AlertDialog" parent="MaterialBaseTheme.Dialog">
        <item name="android:windowMinWidthMajor">@android:dimen/dialog_min_width_major</item>
        <item name="android:windowMinWidthMinor">@android:dimen/dialog_min_width_minor</item>
    </style>

我发现AppCompat对话框设置了相同的自定义宽度,这里是:

<style name="Base.Theme.AppCompat.Light.Dialog.Alert">
        <item name="windowMinWidthMajor">@dimen/abc_dialog_min_width_major</item>
        <item name="windowMinWidthMinor">@dimen/abc_dialog_min_width_minor</item>
    </style>

但它不起作用

唯一的区别是MeterialDialog属性开头的andorid命名空间

提问于
用户回答回答于

根据这个链接

Min_witdh_major是:

当平台沿主轴(即屏幕为横向)时,平台所需的最小尺寸为对话框的宽度。这可以是分数或维度。

而min_with_minor是:

当平台沿着短轴(即屏幕是纵向)时,平台所需的最小尺寸为对话框的宽度。这可以是分数或维度。

在appcompat中,此值设置为65%。

用户回答回答于

感谢,加了Android:后失效的属性可以使用了。

用户回答回答于

以下是有关的进一步细节:

android:windowMinWidthMajor - > Landscape中的min_dialog_width

android:windowMinWidthMinor - >肖像中的min_dialog_width

  • 但是,对话框的高度未设置,只包装内容。

实际值@dimen/abc_dialog_min_width_major & @dimen/abc_dialog_min_width_minor在以下路径中定义:

@dimen/abc_dialog_min_width_major-是65%还是45%取决于屏幕尺寸。 @dimen/abc_dialog_min_width_minor-是95%还是72%取决于屏幕尺寸。

扫码关注云+社区

领取腾讯云代金券

玩转腾讯云 有奖征文活动