我发现使用 Holo Dialog 主题(@android:style/Theme.Holo.Dialog
)的活动在冰激凌三明治系统中存在一些奇怪的问题。
它们似乎忽略它们的布局并填充整个屏幕,而不是来自 XML 布局的布局宽度和高度。相同的布局在 Honeycomb 中按预期工作,但在 Ice Cream Sandwich 上不起作用。
示例:
正确的方式(Honeycomb)
不正确的方式(Ice Cream Sandwich)
两台设备都运行着应用程序的完全相同版本,并且使用完全相同的布局。这是相关的布局:
<?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>
有什么想法可以解决这个问题吗?在我的基于ICS的Galaxy Nexus上也出现了类似的问题,它完全忽略了高度和宽度的match_parent标记。ICS中的对话框主题有问题吗?更新:
我进行了更多测试,发现如果将宽度设置为894dp或更少,会产生“正确”的外观,但如果将宽度设置为895dp或更多,它会成为不正确的外观。模拟器表现相同。这太奇怪了...
![enter image description here](https://istack.dev59.com/taGmv.webp)