android - android 样式 :uiOptions ="splitActionBarWhenNarrow"?

标签 android android-actionbar

有谁知道使用 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>

但是他们都对Galaxy Nexus没有影响

最佳答案

这个答案基本上是niko34's但更详细一点。目前,我的顶部操作栏和底部操作栏(底部操作栏更恰本地命名为 split actionbar )的样式相同,但您会发现以不同方式设置它们非常简单。我正在使用 ActionBarSherlock v4.2.0,并已在运行 Jelly Bean 的 Samsung Galaxy S3 和运行 Gingerbread 的 HTC Droid Incredible 上测试并完美运行。

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 的。这是一个位于 res/drawable 目录中的 xml 文件。以下是该文件的来源。

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.png 文件,它位于 res/drawable-hdpi res/drawable-ldpires/drawable-mdpires/drawable-xhdpi

所以所有这些信息可能比必要的多,但总比没有好! :)

关于android - android 样式 :uiOptions ="splitActionBarWhenNarrow"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10160422/

相关文章:

android - onCreate() 中的 getLocationOnScreen() 仅返回零

android - 不可点击的菜单项在 Android 中不会变灰

android - ActionBarSherlock Action Item 的自定义下拉

android videoView不播放带有日文字符的视频文件

java - 在 getInstance() 方法或实例变量定义中初始化单例之间是否存在功能差异

android - ImageView ScaleType 忽略填充

android - 为什么 ICS 没有为 Holo Light 提供一些图标?

android - 如何在特定菜单项之间添加分隔符?

android - ActionBar/ActionBarSherlock 中的自定义图像而不是 Logo

android - 这是隐藏我的 ActionBar 的好方法吗?