我有一个Android项目,其中使用了ActionBarSherlock,我在工作区中导入了另一个包含Android支持库的项目。即使使用ActionBarSherlock导入支持库,也无法使用GridLayout
我想现在使用GridLayout,我假设,鉴于存在支持 库,它将被识别并可用,但事实并非如此。 Eclipse告诉我,我需要将我的项目的最小API设置为14,而我被迫将其保留为8。有没有办法解决这个问题?
我希望这已经够清楚了。感谢帮助。
我有一个Android项目,其中使用了ActionBarSherlock,我在工作区中导入了另一个包含Android支持库的项目。即使使用ActionBarSherlock导入支持库,也无法使用GridLayout
我想现在使用GridLayout,我假设,鉴于存在支持 库,它将被识别并可用,但事实并非如此。 Eclipse告诉我,我需要将我的项目的最小API设置为14,而我被迫将其保留为8。有没有办法解决这个问题?
我希望这已经够清楚了。感谢帮助。
如果没有看到项目设置,很难确定您的问题。 我能够从零开始创建新的项目,它同时使用ActionBarSherlock
和GridLayout
库。
SDK
,ActionBarSherlock
,GridLayout
和v4-support
库以及更新ADT Eclipse plugin
。创建新项目,并通过默认,放弃一切,除了:
Build SDK = Android 4.1 (API 16)
Minimum Required SDK = API 8
转到项目属性 - > Android和添加actionbarsherlock和 网格布局库。
转到res
文件夹并删除values-v11
和values-v13
子文件夹。
编辑res\values\styles.xml
:
<resources>
<style name="AppTheme" parent="Theme.Sherlock.Light" />
</resources>
编辑res\layout\activity_main.xml
:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<android.support.v7.widget.GridLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true"
app:columnCount="2"
tools:context=".MainActivity" >
<TextView
android:padding="@dimen/padding_medium"
android:text="@string/cell1"
tools:context=".MainActivity" />
<TextView
android:padding="@dimen/padding_medium"
android:text="@string/cell2"
tools:context=".MainActivity" />
<TextView
android:padding="@dimen/padding_medium"
android:text="@string/cell3"
tools:context=".MainActivity" />
<TextView
android:padding="@dimen/padding_medium"
android:text="@string/cell4"
tools:context=".MainActivity" />
</android.support.v7.widget.GridLayout>
</RelativeLayout>
创建缺少字符串资源(小区1,...)
编辑MainActivity.java:
package com.test.gridlayout;
import android.os.Bundle;
import com.actionbarsherlock.app.ActionBar;
import com.actionbarsherlock.app.SherlockFragmentActivity;
import com.actionbarsherlock.view.Menu;
public class MainActivity extends SherlockFragmentActivity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ActionBar ab = getSupportActionBar();
ab.setDisplayShowTitleEnabled(true);
ab.setDisplayUseLogoEnabled(false);
ab.setDisplayHomeAsUpEnabled(false);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getSupportMenuInflater().inflate(R.menu.activity_main, menu);
return true;
}
}
就是这样。
如果仍有问题,请使用this演示项目作为起点。
GridLayout仅被移植到API 7+,并作为SDK文件夹中的库项目提供。你可以在SDK/extras/android/support/v7
找到它。
它不是ABS的一部分,也不是v4支持库的一部分。
+1“android.support.v7.widget.GridLayout”。那正是我需要的。 – Deses 2013-05-07 21:16:03