2015-08-13 94 views
3

我盡我所能在我的應用中設計ActionBar(即android.support.v7.widget.Toolbar),但它不起作用。試圖達到此目的時,我遵循official documentation我真正想做的是讓標題顏色變成白色。它目前顯示爲黑色。我的目標API是11.樣式工具欄無法使用AppCompat

我在做什麼錯?

RES /值/的themes.xml

<resources> 

    <!-- Base theme applied no matter what API --> 
    <style name="MMTheme.Base" parent="Theme.AppCompat.Light"> 
     <item name="windowNoTitle">true</item> 
     <item name="windowActionBar">false</item> 

     <item name="android:textColor">@color/mm_dark_gray</item> 
     <item name="colorPrimary">@color/mm_brown</item> 
     <item name="colorPrimaryDark">@color/mm_dark_gray</item> 
     <item name="colorAccent">@color/mm_green</item> 

     <item name="android:actionBarStyle">@style/MMActionBar</item> 
     <item name="android:actionBarTabTextStyle">@style/MMActionBarTabText</item> 
     <item name="android:actionMenuTextColor">@color/mm_green</item> 

     <!-- Support library compatibility --> 
     <item name="actionBarStyle">@style/MMActionBar</item> 
     <item name="actionBarTabTextStyle">@style/MMActionBarTabText</item> 
     <item name="actionMenuTextColor">@color/mm_green</item> 
    </style> 

    <style name="MMTheme" parent="MMTheme.Base"></style> 

    <!-- ActionBar style --> 
    <style name="MMActionBar" parent="@style/Widget.AppCompat.ActionBar"> 
     <item name="android:background">@color/mm_green</item> 

     <item name="android:titleTextStyle">@style/MMActionBarTitleText</item> 

     <!-- Support library compatibility --> 
     <item name="titleTextStyle">@style/MMActionBarTitleText</item> 
    </style> 

    <!-- ActionBar title text --> 
    <style name="MMActionBarTitleText" parent="@style/TextAppearance.AppCompat.Widget.ActionBar.Title"> 
     <item name="android:textColor">@color/mm_white</item> 
     <!-- The textColor property is backward compatible with the Support Library --> 
    </style> 

    <!-- ActionBar tabs text --> 
    <style name="MMActionBarTabText" parent="@style/Widget.AppCompat.ActionBar.TabText"> 
     <item name="android:textColor">@color/mm_green</item> 
     <!-- The textColor property is backward compatible with the Support Library --> 
    </style> 

</resources> 

的充氣android.support.v7.widget.Toolbar

<android.support.v7.widget.Toolbar 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/mm_toolbar" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:minHeight="?attr/actionBarSize"/> 

Activity

// Setup main Toolbar 
Toolbar toolbar = (Toolbar) mInflatedActivity.findViewById(R.id.mm_toolbar); 
setSupportActionBar(toolbar); 
getSupportActionBar().setIcon(R.drawable.ic_launcher); 

我已經嘗試了所有我能想到並在網上搜索的東西,但是我無法使其工作。我錯過了什麼?

電流的結果是(沒關係的搜索圖標):

enter image description here

在此添加style="@style/MMActionBar"android.support.v7.widget.Toolbar結果的XML屬性:

enter image description here

更改主父主題Theme.AppCompat.Light.DarkActionBar什麼都不做。

+1

創建一個工具欄佈局then..And把它交給你的工具欄。 –

回答

4

就在YOUT佈局XML在XML本身ThemeOverlay.AppCompat.Dark.ActionBar這將使標題文本白色使用

<android.support.v7.widget.Toolbar 
    android:id="@+id/toolbar" 
    android:layout_width="match_parent" 
    android:layout_height="?attr/actionBarSize" 
    android:background="@color/red600" 
    app:popupTheme="@style/ThemeOverlay.AppCompat.Light" 
    app:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar" /> 

集主題。

app:popupTheme="@style/ThemeOverlay.AppCompat.Light" 
app:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar" 

我猜這是主題工具欄上的正確的方式,根據官方Android開發者博客,因爲

工具欄

造型做不同的標準動作欄, 直接設定到視圖上。

下面是你應該當你使用一個工具欄 爲你的動作條使用爲基本風格:

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

的應用:主題宣言將確保你的文字和項目 使用純色(即100%不透明白色)。

+0

這樣做同時保留'style =「@ style/MMActionBar」'提供了所需的顏色。這是否真的是它意味着要完成的方式?我引用的官方文檔使用了''等等,這似乎什麼都不做。爲什麼這不起作用? –

+0

當使用工具欄時,我通常無法獲得android:actionBarStyle屬性,因此我切換到了此方法,而且看起來這種方式非常普遍。只要看到這個官方的Android開發者博客,他們也使用相同的技術。所以我想這是正確的做法。 http://android-developers.blogspot.in/2014/10/appcompat-v21-material-design-for-pre.html –

+0

@OP我想,如果我的解決方案解決了您的問題,您應該upvote並將答案標記爲解決了。 –

1

我面臨同樣的問題。以下解決方案解決了我的問題。 爲此,您需要在兩處進行更改。

1。修改工具欄這樣的XML,

<android.support.v7.widget.Toolbar 
android:layout_height="wrap_content" 
android:layout_width="match_parent" 
android:background="@color/ColorPrimary" 
android:elevation="2dp" 
xmlns:android="http://schemas.android.com/apk/res/android" > 
<TextView 
    android:id="@+id/TV_tool_bar" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:text="My App Name" 
    android:textSize="18sp" 
    android:textColor="#FFFFFF"/> 
</android.support.v7.widget.Toolbar> 
  • 修改像這樣在你的活動文件。

    Toolbar toolbar = (Toolbar) findViewById(R.id.tool_bar); 
    setSupportActionBar(toolbar); 
    getSupportActionBar().setTitle(null); 
    
  • 完蛋了。這會讓你的標題顏色變白。乾杯..!

    +1

    這也是一個可行的解決方案,儘管'工具欄'標題被刪除並自行處理。如果你想要別的東西比黑色或白色或主要主題首先給你帶來的東西更容易。 –

    0

    使用此更改的工具欄上的字母的顏色:

    <android.support.v7.widget.Toolbar  
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:background="@color/ColorPrimary" 
    android:theme="@style/ThemeOverlay.AppCompat.Dark" 
    android:elevation="4dp" 
    > 
    
    </android.support.v7.widget.Toolbar> 
    
    相關問題