android API 10中的网格布局支持

时间:2012-04-23 09:57:38

标签: android layout grid

我开发了一个目标API为15的应用程序。该布局包含网格布局。现在,当我将Target API更改为10时,我遇到了网格布局和另一个元素“空间”的问题。 Eclipse提示我下载2.3.3的支持库,我做了......但仍然有问题。

3 个答案:

答案 0 :(得分:36)

确实已将

GridLayout向后移植以与API级别7及更高版本兼容。它是(某种程度上)支持库的一部分。下载支持库后,您将在位于以下位置的本地sdk文件夹中找到一个Android库项目:

<sdk_folder>\extras\android\compatibility\v7\gridlayout

将其设置为您正在处理的项目的依赖项。之后,您需要将整个项目中的引用从15级版本更改为此兼容版本,以便支持pre-ICS设备。在布局文件中,将您的xml从GridLayout更改为android.support.v7.widget.GridLayout。用法应该相似,如果不相同的话。

关于Space窗口小部件:我还没有实际使用过这个窗口小部件,但它似乎可以通过在现有视图上设置边距/填充或添加自己的通用{来代替{1}}这是完全透明的。

答案 1 :(得分:18)

如果使用Android Studio,一旦您下载了支持库(如提及的@MH),您必须使用File->Import Module...,然后选择GridLayout支持的位置,对我来说就是这里的位置:{{1 }}

接下来,您使用<sdk_folder>\extras\android\support\v7\gridlayout而不是在xml布局文件中使用<Gridlayout>。这是一个例子:

<android.support.v7.widget.GridLayout>

布局中的元素将为GridLayout属性引用<android.support.v7.widget.GridLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" android:layout_width="match_parent" android:layout_height="match_parent" app:useDefaultMargins="true" app:alignmentMode="alignBounds" app:columnOrderPreserved="false" app:columnCount="4" > 而不是app,如上所示和子元素中所示:

android

最后,必须将GridLayout支持库引用添加到 <TextView android:textSize="32dip" app:layout_columnSpan="4" app:layout_gravity="center_horizontal" /> 的{​​{1}}部分:

dependencies

答案 2 :(得分:4)

或另一种选择是third-party backwards compatible implementation:

这可以与API级别3兼容,如果你需要那么远,它还包括Space小部件。