gpt4 book ai didi

android - 自定义对话框大小以匹配 Theme.Holo.Light.Dialog

转载 作者:塔克拉玛干 更新时间:2023-11-02 07:53:58 27 4
gpt4 key购买 nike

如果我有一个主题设置为 Theme.Holo.Light.Dialog 的 Activity,它会很好地扩展。它会在竖屏模式下几乎完全填满手机的屏幕,但在横屏模式下它不会拉伸(stretch)得过长。例如,在这张来自 Google 的图片中,您可以看到对话框没有填满整个屏幕。

enter image description here

它不会折叠以匹配标题的宽度,就像如果您通过拥有一个扩展 Dialog 类的类来构建自己的 Dialog 时会发生的情况。

这就是我的布局会发生的情况。

enter image description here

我需要将哪些属性应用到 LinearLayout 以使其缩放得很好?

最佳答案

您可以使用 Theme.Holo.Light.Dialog.MinWidth 正确调整布局大小。

来自文档:

public static final int Theme_Holo_Light_Dialog_MinWidth

Variant of Theme.Holo.Light.Dialog that has a nice minimum width for a regular dialog.

使用它的方法是将 ContextThemeWrapper 代替 Context(使用它)传递给自定义对话框的构造函数:

YourCustomDialog cDialog = new YourCustomDialog(
new ContextThemeWrapper(this,
android.R.style.Theme_Holo_Light_Dialog_MinWidth));

Theme.Holo.Light.Dialog.MinWidth 是这样定义的:

<style name="Theme.Holo.Light.Dialog.MinWidth">
<item name="android:windowMinWidthMajor">@android:dimen/dialog_min_width_major</item>
<item name="android:windowMinWidthMinor">@android:dimen/dialog_min_width_minor</item>
</style>

来自 dimens.xml:

@android:dimen/dialog_min_width_major:

<!-- The platform's desired minimum size for a dialog's width when it
is along the major axis (that is the screen is landscape). This may
be either a fraction or a dimension. -->
<item type="dimen" name="dialog_min_width_major">65%</item>

@android:dimen/dialog_min_width_minor:

<!-- The platform's desired minimum size for a dialog's width when it
is along the minor axis (that is the screen is portrait). This may
be either a fraction or a dimension. -->
<item type="dimen" name="dialog_min_width_minor">95%</item>

看起来,您发布的图片中对话框的宽度约为 65%。在纵向模式下,它将是 95%。

老实说,纵向模式下宽度看起来不像 95%,但比以前好多了:):

enter image description here

关于android - 自定义对话框大小以匹配 Theme.Holo.Light.Dialog,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20199118/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com