13

1 行バージョンで変更せずに、ActionBar のタブ バーの背景色を変更する方法はありますか?

私が望むものを明確にするために:ポートレートモードでは、ActionBar は ActionBar 自体とその下のタブの 2 行に分割されます。横向きモードでは、タブは実際の ActionBar にあります。

ポートレートモードの背景色を変更したい。TabView の背景を変更すると、両方のモードで変更されます。それらのために別のスタイルを作成する必要がありますか? これは 2 番目の質問をもたらします: いつ 2 行になるか、いつそうでないかを知る方法はありますか?

それとも、何かが足りないのですか?

私はActionBarSherlockを使用しています

4

5 に答える 5

45

android:backgroundStackedActionBar スタイルの属性を探していると思います:

<style name="MyTheme" parent="android:Theme.Holo.Light">
    <item name="android:actionBarStyle">@style/MyActionBarStyle</item>
</style>

<style name="MyActionBarStyle" parent="@android:style/Widget.Holo.Light.ActionBar.Solid">
    <item name="android:backgroundStacked">@drawable/my_stacked_background</item>
</style>

または (ActionBarSherlock を使用している場合):

<style name="MyTheme" parent="@style/Theme.Sherlock.Light">
    <item name="android:actionBarStyle">@style/MyActionBarStyle</item>
    <item name="actionBarStyle">@style/MyActionBarStyle</item>
</style>

<style name="MyActionBarStyle" parent="@style/Widget.Sherlock.Light.ActionBar.Solid">
    <item name="android:backgroundStacked">@drawable/my_stacked_background</item>
    <item name="backgroundStacked">@drawable/my_stacked_background</item>
</style>
于 2013-04-08T08:49:43.120 に答える
23

アクションバー タブの色を変更するには、次のコードを使用してください。

//たとえば、タブの背景として白色が必要な場合は、

getActionBar().setStackedBackgroundDrawable(new ColorDrawable(Color.parseColor("#FFFFFF")));
于 2014-12-17T07:54:37.453 に答える
3

ActionBarSherlockvalues/abs__themes.xmlには、

<item name="actionModeSplitBackground">@drawable/abs__cab_background_bottom_holo_dark</item>

ABS から派生した独自のテーマを作成する必要があります

<style name="AppTheme" parent="Theme.Sherlock">
    <item name="actionBarStyle">@style/MyActionBar</item>
    <item name="android:actionBarStyle">@style/MyActionBar</item>
</style>

<style name="MyActionBar" parent="Widget.Sherlock.ActionBar">
    <item name="actionModeSplitBackground">@drawable/my_split_background</item>
</style>

これがお役に立てば幸いです。

于 2012-07-03T20:39:58.140 に答える
0

向きに応じてスタイルを分離するには、フォルダー内に(横向きモードの場合)および(縦向きモードの場合)/resという新しいフォルダーを作成し、アクションバー用のxmlファイルを配置して、それぞれに特定のスタイル(必要な色)を設定する必要があります。フォルダ。layout-landlayout-port

于 2012-07-03T20:50:36.560 に答える