我遇到了这个问题,gunar 的回答非常有帮助,但我想我可以添加更多细节。如果在 AndroidStudio 中,将目录视图设置为“Project”(这样您就可以看到您的新目录),然后右键单击“res”以创建新的资源目录。创建两个新目录,“values-port”和“values-land”,分别作为类型值。
然后,在 values-land 中,添加一个整数项:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<integer name="columns">4</integer>
</resources>
在 values-port 中,添加一个整数项:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<integer name="columns">2</integer>
</resources>
现在在您的 gridview 布局中,而不是硬编码您的 numColumn:
<GridView
android:id="@+id/gridview"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:numColumns="@integer/columns"
android:columnWidth="100px"
android:stretchMode="columnWidth"
android:gravity="center"/>
这本质上是 gunar 的解决方案(谢谢 gunar!),但它增加了我在此过程中发现的一些细节。例如,在更改为项目视图之前,我看不到我正在创建的 res 目录,并且已经存在整数资源类型,因此我们不需要将列声明为项目,然后将类型设置为整数。(顺便说一句:我喜欢 Android XML 工具!)