簡體   English   中英

Android操作欄背景色

[英]Android Action Bar Background color

我看過android文檔和其他示例,但仍然無法使我的操作欄樣式起作用。 我已在Android清單中將主題設置為“ AppTheme”,但背景顏色不會更改。

這是我的styles.xml:

<!-- Base application theme. -->
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
    <!-- Customize your theme here. -->
    <item name="android:actionBarStyle">@style/ActionBarTheme</item>
</style>

<style name="ActionBarTheme" parent="Widget.AppCompat.Light.ActionBar.Solid.Inverse">
    <item name="android:background">#9D0D0D</item>
    <item name="background">#9D0D0D</item>
</style>

我發現我需要兩次定義樣式,一次使用項目名稱“ android:background”,另一次使用項目名稱“ background”。 后者用於支持庫兼容性。 運行應用程序時出現此錯誤:

Error:(11, 41) Color types not allowed (at 'background' with value '#9D0D0D').

為什么android不允許使用項目名稱為“ background”的顏色,但允許使用“ android:background”的顏色? 還有什么可能是錯誤的嗎?

試試這個代碼:

<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
        <!-- Customize your theme here. -->
        <item name="colorPrimaryDark">@color/primaryDarkColorActionBar</item>
        <item name="colorPrimary">@color/primaryColorActionBar</item>
</style>

另外,在最新的appcompat更新(即22.1.1)中不推薦使用ActionBarActivity。 因此最好使用AppCompatActivity代替(如果尚未使用)。

解決方案1:您可以從Java做到這一點。 只需在setContentView之后使用這2行。

ActionBar bar = getActionBar();
bar.setBackgroundDrawable(new ColorDrawable(Color.parseColor("#db1012")));

解決方案2:您可以使用工具欄。 將此添加到您的xml。

<android.support.v7.widget.Toolbar
    android:id="@+id/toolbar"
    android:layout_width="match_parent"
    android:layout_height="?attr/actionBarSize"
    android:background="@color/color_primary"
    app:titleTextAppearance="@style/Toolbar.TitleText"
    android:layout_alignParentTop="true">
</android.support.v7.widget.Toolbar>

而這是從Java。

  /**
 * Set toolbar into actionbar.
 */
protected void setupToolbar() {
    if (toolbar == null) {

        toolbar = (Toolbar) findViewById(R.id.toolbar);
        toolbar.setTitle(R.string.back);
        toolbar.setTitleTextColor(Color.WHITE);
        toolbar.setBackgroundColor(Color.RED);
    }
}

添加到Astrount的答案:

<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
        <!-- Customize your theme here. -->
        <item name="colorPrimaryDark">@color/primaryDarkColorActionBar</item>
        <item name="colorPrimary">@color/primaryColorActionBar</item>
</style>

在您的Gradle配置依賴項中:

dependencies {
    ...
    compile 'com.android.support:design:22.2.0'
}

在放置工具欄的布局中:

<android.support.design.widget.AppBarLayout 
    android:layout_width="match_parent"
    android:layout_height="wrap_content">

<android.support.v7.widget.Toolbar
    android:id="@+id/toolbar"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:minHeight="?attr/actionBarSize"
    android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"/>

</android.support.design.widget.AppBarLayout>

這會自動為您的工具欄設置樣式。 確保使用Android SDK Manager更新到最新的支持庫SDK。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM