如何更改ActionBar的背景?

时间:2015-04-14 21:24:12

标签: android xml layout android-actionbar

已经关注了这个主题的几个教程,因为我是初学者仍然是问题。

清单:

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

    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />


    <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:logo="@drawable/ic_launcher"
        android:largeHeap="true"
        android:label="@string/app_name"
        android:name=".Utils.ApplicationClass"
        android:theme="@style/ThemeOverlay.AppCompat.ActionBar">

        <activity
            android:name=".Pages.MainActivity"
            android:label="@string/noticias_menu"
            android:screenOrientation="portrait"
            android:windowSoftInputMode="adjustPan"
            android:theme="@style/Theme.AppCompat.Light">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
            <meta-data android:name="android.support.UI_OPTIONS"
                android:value="splitActionBarWhenNarrow" />
        </activity>

        <activity
            android:name=".Pages.SplashScreenActivity"
            android:label="@string/title_activity_splash_screen"
            android:screenOrientation="portrait"
            android:theme="@style/Theme.AppCompat.Light.NoActionBar">
          <!-- <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>-->
        </activity>
    </application>
</manifest>

正如您在清单中看到的那样,我会看到徽标和图标,但它也不会出现在ActionBar上。我该如何解决?

菜单:

<menu xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools" tools:context=".MainActivity">

    <item android:id="@+id/action_settings"
        android:title="@string/action_settings"
        android:orderInCategory="100"
        android:showAsAction="always"
        app:showAsAction="always"
        android:icon="@drawable/excursoes_button"
        tools:ignore="AppCompatResource" />

    <item android:id="@+id/action_settings1"
        android:title="@string/action_settings"
        android:orderInCategory="100"
        android:showAsAction="always"
        app:showAsAction="always"
        android:icon="@drawable/logo"
        tools:ignore="AppCompatResource" />

    <item android:id="@+id/action_settings2"
        android:title="@string/action_settings"
        android:showAsAction="always"
        android:orderInCategory="100"
        app:showAsAction="always"
        android:icon="@drawable/excursoes_button"
        tools:ignore="AppCompatResource" />

</menu>

1 个答案:

答案 0 :(得分:1)

我遇到了同样的问题。 官方文档在我工作的版本中不起作用。 这段代码对我有用

public void setActionBar(String heading) {

    ActionBar actionBar = getSupportActionBar();
    actionBar.setHomeButtonEnabled(true);
    actionBar.setDisplayHomeAsUpEnabled(false);
    actionBar.setDisplayShowHomeEnabled(false);
    actionBar.setBackgroundDrawable(new ColorDrawable(getResources().getColor(R.color.title_bar_gray)));
    actionBar.setTitle(heading);
    actionBar.show();

}

在values / strings.xml中添加以下行

<color name="title_bar_gray">#2E9AFE</color>

然后你只需在onCreate()

上调用该方法