2012-07-30 83 views
3

我有一个Android项目,其中使用了ActionBarSherlock,我在工作区中导入了另一个包含Android支持库的项目。即使使用ActionBarSherlock导入支持库,也无法使用GridLayout

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

我希望这已经够清楚了。感谢帮助。

回答

2

如果没有看到项目设置,很难确定您的问题。 我能够从零开始创建新的项目,它同时使用ActionBarSherlockGridLayout库。

  1. 请确保您有最新的SDKActionBarSherlockGridLayoutv4-support库以及更新ADT Eclipse plugin
  2. 创建新项目,并通过默认,放弃一切,除了:

    Build SDK = Android 4.1 (API 16) 
    Minimum Required SDK = API 8 
    
  3. 转到项目属性 - > Android和添加actionbarsherlock和 网格布局库。

  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. 创建缺少字符串资源(小区1,...)

  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. 就是这样。

如果仍有问题,请使用this演示项目作为起点。

+1

+1“android.support.v7.widget.GridLayout”。那正是我需要的。 – Deses 2013-05-07 21:16:03

6

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

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

相关问题