2015-08-13 69 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> 
    
    相关问题