XmlでActionBarSherlock
を使用しているとき:
<item name="Android:actionBarStyle">@style/Widget.Styled.ActionBar</item>
私はこのエラーを受け取りました:
Android:actionBarStyle requires API level 11 (current min is 8) error
アクションバーを使用してアプリを2.2デバイスにバックポーティングするために使用しています。
両方を一緒に使用する方法:
<item name="actionBarStyle">@style/Widget.Styled.ActionBar</item>
<item name="Android:actionBarStyle">@style/Widget.Styled.ActionBar</item>
あなただけを使用する必要があります:
<item name="actionBarStyle">@style/Widget.Styled.ActionBar</item>
エラーが発生する可能性があるため、APIレベル11でAndroid:actionBarStyle
を使用できます。
すべてのAPIレベルで同じようにActionBar
をスタイルできるようにするには、選択したAPIレベルに異なるフォルダーを作成し、新しいstyle.xml
/themes.xml
ファイルを作成する必要がありますこれらのフォルダ内。
例えば:
- res
-- values
-- styles.xml
-- themes.xml // API LEVEL 8+
-- values-v11
-- styles.xml
-- themes.xml // API LEVEL 11+
-- values-v14
-- styles.xml
-- themes.xml // API LEVEL 14+
私が考えることができる2番目のことは、異なるAPIレベルで現在のテーマにどのテーマを含めるかを注意することです。
たとえば、APIレベル8の場合:@style/Theme.Sherlock.Light.DarkActionBar
を使用し、actionBarStyle
のみを使用する必要があります。 APIレベル14+のアクションバーをスタイリングしている間は、おそらく現在のテーマの親としてHolo.Light
テーマを設定するため、actionBarStyle
は必要ありません。したがって、この状況では、 Android:actionBarStyle
。
別のオプションは、tools:targetApi
属性を使用することです。これには、tools
名前空間が必要です。これは、Javaファイルで使用できる@TargetApi
アノテーションと同様の方法で機能します。
<resources xmlns:tools="http://schemas.Android.com/tools">
<style name="MyThemes.MyTheme">
<item name="actionBarStyle">@style/Widget.Styled.ActionBar</item>
<item name="Android:actionBarStyle" tools:targetApi="11">@style/Widget.Styled.ActionBar</item>
</style>
</resources>
xmlns:tools="http://schemas.Android.com/tools"
タグの<resources>
が必要なことに注意してください。
Eclipseでエラーを選択して、キー「Delete」を押すだけです。その後、プロジェクトを実行するだけで動作します。
XMLを変更するたびに、これらのエラーを削除します。
ターゲットとするSDKバージョンによって異なります。
あなたのAndroidManifest.xml
つかいます:
<uses-sdk Android:minSdkVersion="8" Android:targetSdkVersion="x" Android:maxSdkVersion="10"/>
x 8〜10の間にあるもの(コードによって異なります)
あなたのスタイルで使用:
<item name="actionBarStyle">@style/Widget.Styled.ActionBar</item>
あなたのAndroidManifest.xml
つかいます:
<uses-sdk Android:minSdkVersion="8" Android:targetSdkVersion="16" />
ActionBarSherlock
の例で使用される16は、11以上の任意の値にすることができます(コードによって異なります)
あなたのスタイルで両方を使用します:
<item name="actionBarStyle">@style/Widget.Styled.ActionBar</item>
<item name="Android:actionBarStyle">@style/Widget.Styled.ActionBar</item>
1つ目はActionBarSherlock
テーマ用で、2つ目はActionBar
を既にサポートしているAndroidデバイスで同じテーマを使用するためのものです
編集: Lint警告(表示される可能性のあるXMLファイルの赤い下線)をクリアするには: