我已经开发与目标API为15布局包括网格布局的应用程序。 现在,当我改变目标API 10我与电网布局和其他元素“空间”得到的问题。 Eclipse提示我下载一个支持库2.3.3,我做到了。但仍然有问题。
Answer 1:
GridLayout
确实被移植到与API 7级和兼容起来。 这是支持库(在某种程度上)的一部分。 您已经下载了支持库后,你会发现在位于当地的SDK文件夹一个Android库项目:
<sdk_folder>\extras\android\compatibility\v7\gridlayout
将它设置为你工作项目的依赖。 在此之后,你需要从15级版本改变整个项目的引用,这种兼容性之一,以支持ICS预设备。 在版式文件从网格布局更改的XML android.support.v7.widget.GridLayout。 用法应该是相似的,如果不相同。
关于Space
小工具:我还没有实际使用这个(还),但它似乎是东西,既可以由设置保证金/填充现有的观点或自己的通用将代替View
是完全透明的。
Answer 2:
(如@MH提到的)如果使用Android Studio中,一旦你下载了支持库,你必须使用File->Import Module...
,然后选择网格布局支持的位置,这对我在这里位于: <sdk_folder>\extras\android\support\v7\gridlayout
。
接下来,而不是使用<Gridlayout>
在你的XML布局文件,可以使用<android.support.v7.widget.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"
/>
最后,网格布局支持库引用必须添加到dependencies
的部分\src\build.gradle
:
dependencies {
compile 'com.android.support:appcompat-v7:+'
compile 'com.android.support:gridlayout-v7:+'
}
Answer 3:
或者另一种选择是这第三方向后兼容的实现:
这是兼容回到API级别3,如果你需要走那么远回来了,而且还包括空间小部件。
文章来源: Grid Layout support in android API 10