6

SDKバージョン14を使用するときに分割アクションバーに使用するスタイルリソースを知っている人はいますandroid:uiOptions="splitActionBarWhenNarrow"か?

通常ActionBarは使用できます

<item name="android:actionBarStyle">@style/MyActionBar</item>

ただし、これは下部の分割バーに自動的にオーバーフローしません。

私が試してみました

    <item name="android:actionBarSplitStyle">@style/MyActionBar</item>
    <item name="android:actionBarTabBarStyle">@style/MyActionBar</item>

しかし、どちらもGalaxyNexusには影響しません

4

2 に答える 2

14

この答えは基本的にniko34のものですが、もう少し詳しく説明します。現在、上部のアクションバーと下部のアクションバー(下部のアクションバーは分割アクションバーとしてより適切に名前が付けられています)の両方のスタイルが同じですが、スタイルを変えるのは非常に簡単です。私はActionBarSherlockv4.2.0を使用しており、JellyBeanを実行しているSamsungGalaxyS3とGingerbreadを実行しているHTCDroidIncredibleの両方でこれを完璧にテストして実行しました。

AndroidManifest.xml

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="..."
    android:versionCode="1"
    android:versionName="0.1" >

    <uses-sdk
        android:minSdkVersion="10"
        android:targetSdkVersion="16" />

    <application
        android:icon="@drawable/launcher"
        android:label="@string/app_name" >
        <activity
            android:label="@string/main_activity_title"
            android:name=".MainActivity"
            android:screenOrientation="portrait"
            android:theme="@style/Theme.Styled"
            android:uiOptions="splitActionBarWhenNarrow" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>
</manifest>

res / values / themes.xml

<?xml version="1.0" encoding="utf-8"?>
<resources xmlns:android="http://schemas.android.com/apk/res/android">
    <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_actionbar</item>
        <item name="android:background">@drawable/bg_actionbar</item>
        <item name="backgroundSplit">@drawable/bg_actionbar</item>
        <item name="android:backgroundSplit">@drawable/bg_actionbar</item>
    </style>
</resources>

@drawable/bg_actionbarここでは、私が2、3回参照している様子を見ることができます。これは、ディレクトリにあるxmlファイルですres/drawable。以下はそのファイルのソースです。

res / drawable / bg_actionbar.xml

<?xml version="1.0" encoding="utf-8"?>
<bitmap xmlns:android="http://schemas.android.com/apk/res/android"
    android:dither="true"
    android:src="@drawable/bg_tile"
    android:tileMode="repeat" />

ここでは、、、、およびにある私のファイルをandroid:src="@drawable/bg_tile"参照しています。 bg_tile.pngres/drawable-hdpires/drawable-ldpires/drawable-mdpires/drawable-xhdpi

したがって、これらすべてはおそらく必要以上の情報でしたが、十分な情報がないよりはましです。:)

于 2012-10-18T20:54:58.963 に答える
4

この質問は古いですが、私は同じ問題を処理しました。それが他の誰かを助けることができるなら...

分割バーもActionBarStyleを使用してスタイル設定されます。

たとえば、分割アクションバーの下部のスタイルを設定する場合は、MyActionBarスタイルでbackgroundSplitという名前のアイテムを使用できます。

...
<item name="android:actionBarStyle">@style/MyActionBar</item>
...

<style name="MyActionBar">
    <item name="background">@drawable/action_bar_top_background</item>
    <item name="backgroundSplit">@drawable/action_bar_bottom_background</item>
</style>

ドローアブルの代わりにスタイルを使用して背景をカスタマイズできますが、これを使用してドローアブルの背景を定義することもできます。

于 2012-06-14T09:11:26.817 に答える