我在使用Holo Dialog主题(@android:style/Theme.Holo.Dialog
)的冰淇淋三明治中发现了一个奇怪的问题。ICS 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>
任何想法如何解决这个问题?我的基于ICS的Galaxy Nexus出现类似的问题,完全忽略了match_parent
标签的高度和宽度。对话主题是否在ICS中被打破?
更新:
我已经做了一些测试,它似乎像宽度或多或少会产生“正确”的样子894dp,但如果我将宽度设置为895dp以上,”会是不正确的样子。模拟器的行为方式相同。这是非常奇怪的......
这看起来很奇怪。这是在黑暗中拍摄的,但有时在更改构建目标后,我会在我的应用中遇到奇怪的图形故障。我不知道为什么,但清理该项目将始终解决它们。就像我说的那样,在黑暗中拍摄,但可能很简单。 – adneal 2012-02-06 16:48:12
谢谢,只是再次尝试过,但似乎没有任何效果。我刚刚更新了我的问题 - 它看起来像是在894和895 dp宽度之间发生的。 – 2012-02-06 16:55:56
您的屏幕截图是使用两个单独的设备拍摄的吗?您的文章假定这种行为在HoneyComb上始终正常工作,但在ICS上不会正常工作,但是您可能遇到的问题完全取决于屏幕的大小?如果不是,那么您可以考虑创建两个AVD(一个运行3.0,另一个运行4.0),并使用两个AVD进行测试,以确定问题实际上是否取决于Android SDK版本号。 – 2012-05-09 05:08:32