ActionBarSherlock をスタイリングするとき、接頭辞付きの属性を使用する必要がある場合、接頭辞なしの属性を使用する必要がある場合、およびその両方を使用する必要がある場合に疑問に思いました。例えば:
<item name="actionBarStyle">@style/Widget.Styled.ActionBar</item>
<item name="android:actionBarStyle">@style/Widget.Styled.ActionBar</item>
ActionBarSherlock Web サイトでこの説明を見つけました。
ミラーリングされた属性
Android のテーマ システムの制限により、テーマのカスタマイズは 2 つの属性で宣言する必要があります。通常の android-prefixed 属性はテーマをネイティブ アクション バーに適用し、prefixed 属性はカスタム実装用です。両方のテーマ API はまったく同じであるため、カスタマイズを 2 回実装するのではなく、2 回参照するだけで済みます。
これが何を意味するかを正確に伝える最も簡単な方法は、例を使用することです。以下は、上記の「Styled」の例の完全なテーマです。
<style name="Theme.Styled" parent="Theme.Sherlock.Light.DarkActionBar">
<item name="actionBarStyle">@style/Widget.Styled.ActionBar</item>
<item name="android:actionBarStyle">@style/Widget.Styled.ActionBar</item>
</style>
<style name="Widget.Styled.ActionBar" parent="Widget.Sherlock.Light.ActionBar.Solid.Inverse">
<item name="background">@drawable/bg_striped</item>
<item name="android:background">@drawable/bg_striped</item>
<item name="backgroundSplit">@drawable/bg_striped_split</item>
<item name="android:backgroundSplit">@drawable/bg_striped_split</item>
</style>
接頭辞のない属性は、API レベル 11 より前には存在しなかった属性にのみ使用する必要があると思いandroid:background
ましbackground
た。android:background
API レベル 1 から存在します。誰かがこれらのミラー化された属性について詳細を教えてもらえますか?