3

ActionBarSherlockを使用しているAndroidプロジェクトがあります。これは、Androidサポートライブラリも含む別のプロジェクトとしてワークスペースにインポートしました。

ここでGridLayoutを使用したいと思います。サポートライブラリが存在する場合、それは認識されて利用可能になると想定していましたが、そうではありません。Eclipseから、プロジェクトの最小APIを14に設定する必要があると言われましたが、8のままにしておく必要があります。これを修正する方法はありますか?

これが十分に明確であったことを願っています。手伝ってくれてありがとう。

4

2 に答える 2

6

GridLayout は API 7+ のみに移植され、SDK フォルダーでライブラリ プロジェクトとして利用できます。で見つけることができますSDK/extras/android/support/v7

これは、ABS の一部でも、v4 サポート ライブラリ jar の一部でもありません。

于 2012-07-30T15:58:16.447 に答える
2

プロジェクト設定を確認せずに問題を特定することは困難です。ActionBarSherlockGridLayoutライブラリの両方を使用する新しいプロジェクトをゼロから作成できます。

  1. SDK最新の、ActionBarSherlockGridLayout およびv4-supportライブラリと、更新されたがあることを確認してくださいADT Eclipse plugin
  2. 新しいプロジェクトを作成し、以下を除くすべてをデフォルトのままにします。

    Build SDK = Android 4.1 (API 16)
    Minimum Required SDK = API 8
    
  3. プロジェクトの [プロパティ] --> [Android] に移動し、actionbarsherlock および gridlayout ライブラリを追加します。

  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. そのこと。

それでも問題が解決しない場合は、このデモ プロジェクトを出発点として使用してください。

于 2012-07-30T11:37:39.990 に答える