无法为android studio 1.0.1中的动作栏提供样式

时间:2015-02-17 14:13:21

标签: android android-studio android-actionbar android-5.0-lollipop

我试图将颜色/图像作为android studio(),max sdk ver 21中操作栏的背景,但没有成功。以下代码有什么问题,或者怎么做:

<resources>
<style name="CustomActionBarTheme" parent="Theme.AppCompat.Light">
    <item name="android:actionBarStyle">@style/MyActionBar</item>
</style>
<!-- ActionBar styles -->

<style name="MyActionBar" parent="Widget.AppCompat.Light.ActionBar">
    <item name="android:background">@drawable/back</item>
</style>
</resources>

2 个答案:

答案 0 :(得分:1)

如果您在android lollipop操作栏中遇到问题,那么首先您需要将res文件夹中的不同style.xml文件命名为values-v21。 在此创建style.xml中,如在值文件夹中。

您没有正确添加父主题。你应该创建其父级是style2的style1。在style2 parent中添加所需的主题,如parent="@android:style/ThemeOverlay.Material.Light"。 在menifest中添加style1作为应用程序主题。

看看例子。

此处为操作栏 colorPrimary

应用程序外的通知栏

colorPrimaryDark

colorAccent 用于本机对话框,例如进度条,标签等。

<resources>

    <style name="AppBaseTheme" parent="@android:style/ThemeOverlay.Material.Light">

        <item name="android:colorPrimary">@color/material_blue_500</item>
        <!--   darker variant for the status bar and contextual app bars -->
        <item name="android:colorPrimaryDark">@color/material_blue_700</item>
        <!--   theme UI controls like checkboxes and text fields -->
        <item name="android:colorAccent">@color/material_green_A200</item>


    </style>

    <!-- Application theme. -->
    <style name="AppTheme" parent="AppBaseTheme">
        <!-- All customizations that are NOT specific to a particular API-level can go here. -->
    </style>

</resources>

你的xml文件应该是这样的

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

    <uses-sdk
        android:minSdkVersion="14"
        android:targetSdkVersion="21" />

    <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <activity
            android:name="info.androidhive.slidingmenu.MainActivity"
            android:label="@string/app_name"
            android:configChanges="orientation|keyboardHidden" >
           <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>

    </application>

</manifest>

答案 1 :(得分:0)

如果您还没有,请记住在AndroidManifest.xml中引用您的主题:

android:theme="@style/CustomActionBarTheme"

此外,请确保在Java代码中,当您使用AppCompat支持库时,您的活动扩展ActionBarActivity而不仅仅Activity

如果这一切无效,请转到build.gradle并检查dependencies部分中是否有:

compile 'com.android.support:appcompat-v7:21.0.3'