web-dev-qa-db-ja.com

android:actionBarStyleにはAPIレベル11が必要です

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>
60
Jitendra

あなただけを使用する必要があります:

<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

76
hardartcore

別のオプションは、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>が必要なことに注意してください。

146
InsanityOnABun

Eclipseでエラーを選択して、キー「Delete」を押すだけです。その後、プロジェクトを実行するだけで動作します。

XMLを変更するたびに、これらのエラーを削除します。

7
Timothy T.

ターゲットとするSDKバージョンによって異なります。

11未満のターゲットデバイス:

あなたの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ファイルの赤い下線)をクリアするには:

Clear Lint Warnings

7
madlymad