ICS Holo Dialog主题有什么问题?

Mic*_*Bak 18 android android-3.0-honeycomb android-dialog android-4.0-ice-cream-sandwich

@android:style/Theme.Holo.Dialog在冰淇淋三明治中使用Holo Dialog主题()的活动遇到了一些奇怪的问题.

看起来他们忽略了他们的布局并填充整个屏幕而不是布局宽度和高度从他们的XML布局.相同的布局在Honeycomb中起作用,但在冰淇淋三明治上没有.

例:

正确的方法(蜂窝) 在此输入图像描述

不正确的方式(冰淇淋三明治) 在此输入图像描述

两个设备都运行完全相同的应用程序版本,并使用完全相同的布局.这是有问题的布局:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/linearLayout1"
    android:layout_width="940dp"
    android:layout_height="600dp"
    android:layout_margin="10dp" >

    <GridView
        android:id="@+id/gridView1"
        android:layout_width="940dp"
        android:layout_height="600dp"
        android:horizontalSpacing="10dp"
        android:numColumns="3"
        android:smoothScrollbar="true"
        android:stretchMode="columnWidth"
        android:verticalSpacing="10dp" >
    </GridView>

</LinearLayout>
Run Code Online (Sandbox Code Playgroud)

有关如何解决这个问题的任何想法?类似的问题出现在我的基于ICS的Galaxy Nexus上,它完全忽略了match_parent高度和宽度的标签.对话主题是否在ICS中被破坏?

更新:

我做了一些更多的测试,似乎894dp的宽度或更小将产生"正确"的外观,但如果我将宽度设置为895dp或更多,那将是不正确的外观.模拟器的行为方式相同.这非常奇怪......

在此输入图像描述

Spa*_*rky 6

我不认为ICS不鼓励对话.实际上,他们在Android Design上有一整.这是真的,DialogFragment(甚至在Android支持库中提供)比传统的Dialog受欢迎.

我证实了你对弹出全屏幕对话框的观察,但这种行为与设备有关.在我的Xoom平板电脑上它发生在915dp,而不是895.在我的Galaxy Nexus上,它发生在444dp.在我的Galaxy Tab 10.1上,它根本不会发生.

如果您深入了解源代码,您可以看到Holo对于较小的屏幕和Holo.Dialog.FixedSize较大的屏幕,会出现一个Dialog主题.我原以为这是基于显示尺寸,而不是布局尺寸,但也许我会弄错.我会试着找出导致跳跃的原因.