1

アクション バーの使用を読んでいたところ、「...タブの追加やアクション バー スタイルの変更など、アクション バー API を使用する場合は、android:minSdkVersion を '11' に設定する必要があるため、 ActionBar クラスにアクセスできます。」しかし、I/Oプロジェクトでは、マニフェストは minSdkVersion として '7' を持っています。テーマとタブをどのように行うことができますか? 私は彼らが何をしているかについていくのに苦労しています。

ありがとう

4

1 に答える 1

2

注目すべき重要なコードはActivityHelperActivityHelperHoneycombにあると思います。基本的に、彼らは と を設定android:targetSdkVersion="11"してからandroid:minSdkVersion="7"、Honeycomb (またはそれ以上) で新しい ActionBar API を選択的に呼び出し、独自のカスタム アクション バー実装 pre-Honeycomb を呼び出します。

ハニカム以前のアクション バー コードをまだ持っていない場合は、ActionBarSherlock という優れたプロジェクトがあり単純に ActionBar API を使用して、ハニカム以前で動作させることができます (いくつかのインポートを変更するだけです)。

注: ActionBarSherlock を使用することに決め、新しくリリースされた API レベル 13r1 または 12r2 コードを使用するように環境をアップグレードした場合は、必ずバージョン 3.0.3 以降を使用してください (詳細はこちら)。

編集:あなたの質問によりよく答えるために、もう少し背景。クラスandroid:targetSdkVersion="11"にアクセスするには、設定で十分です。ActionBar設定android:targetSdkVersion="7"により、ハニカム以前のデバイスでアプリを実行できますが、ActionBarそれらからコードを呼び出すと、NoClassDefFoundError(またはNoSuchMethodError?) が発生します。

それを避けるために、彼らはActivityHelperAPI レベル < 11 およびActivityHelperHoneycombAPI レベル >= 11 に使用しています。ActivityHelper#createInstance(Activity)は、どちらを使用するかを決定する場所です。

于 2011-07-17T00:16:10.223 に答える