即使使用ActionBarSherlock导入支持lib,也无法使用GridLayout

时间:2012-07-30 08:39:03

标签: android actionbarsherlock grid-layout

我有一个Android项目,我在其中使用ActionBarSherlock,我已将其作为单独的项目导入工作区,该项目还包含Android支持库。

我想现在使用GridLayout,我假设,考虑到支持的存在 图书馆,它将被识别和可用,但事实并非如此。 Eclipse告诉我,我需要将项目的最小API设置为14,而我却被迫将其保留为8.有没有办法可以解决这个问题?

我希望这很清楚。谢谢你的帮助。

2 个答案:

答案 0 :(得分:6)

GridLayout仅被移植到API 7+,并且可以作为SDK文件夹中的库项目使用。您可以在SDK/extras/android/support/v7找到它。

它不是ABS的一部分,也不是v4支持库jar。

答案 1 :(得分:2)

如果没有看到项目设置,很难识别您的问题。 我能够从头开始创建新项目,该项目使用ActionBarSherlockGridLayout库。

  1. 确保您拥有最新的SDKActionBarSherlockGridLayoutv4-support库以及更新的ADT Eclipse plugin
  2. 创建新项目并默认保留所有内容,但以下情况除外:

    Build SDK = Android 4.1 (API 16)
    Minimum Required SDK = API 8
    
  3. 转到项目属性 - > Android并添加actionbarsherlock和 gridlayout libraries。

  4. 转到res文件夹,然后移除values-v11values-v13 子文件夹。

  5. 修改res\values\styles.xml

    <resources>
        <style name="AppTheme" parent="Theme.Sherlock.Light" />
    </resources>
    
  6. 修改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>
    
  7. 创建缺少的字符串资源(cell1,...)

  8. 编辑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;
        }
    }
    
  9. 那就是。

  10. 如果您仍然遇到麻烦,请使用this演示项目作为起点。

相关问题