Android 更改工具栏中的标题颜色?

Android 更改工具栏中的标题颜色?,android,android-theme,android-toolbar,Android,Android Theme,Android Toolbar,我有一个我使用的工具栏,并设置标题: ((ActionBarActivity)getActivity()).getSupportActionBar().setTitle("Home"); 有没有办法把颜色从黑色改成白色 我试着创建自己的主题,并像这样在xml中设置它,但没有成功: <resources> <!-- Base application theme. --> <style name="AppTheme2" parent="Theme.A

我有一个我使用的工具栏,并设置标题:

((ActionBarActivity)getActivity()).getSupportActionBar().setTitle("Home");
有没有办法把颜色从黑色改成白色

我试着创建自己的主题,并像这样在xml中设置它,但没有成功:

<resources>

    <!-- Base application theme. -->
    <style name="AppTheme2" parent="Theme.AppCompat">
        <item name="android:windowNoTitle">true</item>
        <item name="windowActionBar">false</item>
        <item name="colorPrimary">@color/primary</item>
        <item name="colorPrimaryDark">@color/primary_dark</item>
        <item name="colorAccent">@color/accent</item>
        <item name="android:textColorPrimary">@color/primary_text</item>
        <item name="android:textColorSecondary">@color/secondary_text</item>

    </style>

    <style name="Widget.MyApp.ActionBar" parent="Widget.AppCompat.ActionBar">
        <item name="android:background">@color/primary</item>
        <item name="theme">@style/ThemeOverlay.MyApp.ActionBar</item>
        <item name="popupTheme">@style/ThemeOverlay.AppCompat.Light</item>
    </style>

    <style name="ThemeOverlay.MyApp.ActionBar" parent="ThemeOverlay.AppCompat.ActionBar">
        <item name="android:textColorPrimary">#FFFFFF</item>
    </style>



</resources>

真的
假的
@颜色/原色
@颜色/原色/深色
@颜色/口音
@颜色/主文本
@颜色/辅助文本
@颜色/原色
@style/ThemeOverlay.MyApp.ActionBar
@style/ThemeOverlay.AppCompat.Light
#FFFFFF
XML:


以编程方式:

toolbar.setTitleTextColor(0xFFFFFFFF);
val toolbar = findViewById<Toolbar>(R.id.toolbar)
toolbar.setTitleTextColor(Color.WHITE)
根据AppCompat的创建者和上的帖子,可以通过将
android:theme=“@style/ThemeOverlay.AppCompat.dark.ActionBar”
添加到
工具栏的XML:

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

    <Spinner
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:id="@+id/statsSpin"
        android:spinnerMode="dropdown"/>


</android.support.v7.widget.Toolbar>


这会将文本颜色和默认颜色更改为许多属性(例如
微调器
,以根据深色背景的需要点亮文本。

在应用程序基础主题中创建新样式

  <style name="custom_toolbar" parent="@style/Widget.AppCompat.Toolbar">
        <item name="titleTextColor">#replace with color</item>
  </style>

#替换为颜色
并使用工具栏的样式

  <item name="toolbarStyle">@style/custom_toolbar</item>
@style/custom\u工具栏

如果只想更改标题文本的颜色, 试试这个

getSupportActionBar().setTitle(Html.fromHtml(“+titleText+”);


它的工作原理是…!!

扩展超光速粒子通量,用十六进制设置颜色

 toolbar.setTitleTextColor(Color.parseColor("#519c3f"));
setTitleTextColor(getResources().getColor(R.color.black))

(toolbar是您在acitivyt类中为工具栏指定的名称) (在颜色值xml中,设置所需的颜色,并将其引用到所选的颜色名称,如图所示,我保留了一些主颜色和普通名称) 我自己花了一段时间才弄明白这一点,但这是我让它工作的唯一方法,主题编辑器应该允许这样做,但事实就是如此。

在xml中:

应用程序:titleTextColor=“@color/White”作为


我知道在希望之上有很多答案,它将帮助那些不理解以上答案的人

Android有一个名为Toolbar的视图。该视图的标题始终采用color.xml资源中的默认颜色,该资源的项目名称为“重音”。您可以通过两种方式更改工具栏颜色

  • 通过我建议您这样做的xml,您可以在下面看到示例

    <android.support.v7.widget.Toolbar
        android:id="@+id/toolbar"
        android:layout_width="match_parent"
        android:layout_height="?attr/actionBarSize"
        app:titleTextColor="@color/White" />Here you can change it.Remember APP attribute not ANDROID
    
  • 使用此代码

    <android.support.v7.widget.Toolbar
            android:id="@+id/toolbar"
            app:titleTextColor="@color/colorAccent"
            app:theme="@style/ToolbarColoredBackArrow"
            app:subtitleTextColor="@color/colorAccent"
            android:layout_width="match_parent"
            android:layout_height="?attr/actionBarSize"
            android:background="?attr/colorPrimary"
            app:popupTheme="@style/AppTheme.PopupOverlay" />
    

    它可以像上面的答案一样通过编程进行更改。但为了降低代码复杂性,应该通过style.xml进行更改 首先,在res/values文件夹下创建attrs.xml 然后添加两个对attrs.xml文件夹的引用,如下所示

    <android.support.v7.widget.Toolbar
         android:id="@+id/toolbar"
         android:layout_width="match_parent"
         android:layout_height="?attr/actionBarSize"
         android:background="?attr/colorPrimary"
         android:theme="?attr/toolbar_theme"
         app:titleTextAppearance="?attr/toolbar_theme_title"
         android:elevation="4dp"
         app:popupTheme="@style/ThemeOverlay.AppCompat.Light" />
    
    attrs.xml

     <?xml version="1.0" encoding="utf-8"?>
     <resources>
        <attr name="toolbar_theme" format="reference" />
        <attr name="toolbar_theme_title" format="reference" />
    </resources>
    
     <application
         android:theme="@style/CustomTheme">
    
    androidmanifest.xml

     <?xml version="1.0" encoding="utf-8"?>
     <resources>
        <attr name="toolbar_theme" format="reference" />
        <attr name="toolbar_theme_title" format="reference" />
    </resources>
    
     <application
         android:theme="@style/CustomTheme">
    
    
    


    您可以通过扩展Widget.AppCompat.Toolbar并设置titleTextAppearance和subtitleTextAppearance属性来定义自定义工具栏样式。这样,您可以更改工具栏标题和副标题的颜色和文本大小以供参考

    
    @颜色/原色
    @颜色/原色暗
    @样式/我的工具栏样式
    @style/MyTitleText外观
    @style/mysubtitletext外观
    25dp
    #ff3d00
    20dp
    #1976d2
    
    您可以使用actionBarTheme属性更改操作栏的主题,如下所示。尽管它已添加到API level 21中,但它似乎与较旧的API兼容

    <style name="AppTheme" parent="Theme.AppCompat.Light">
        <item name="actionBarTheme">@style/AppTheme.AppBarOverlay</item>
    </style>
    
    
    @style/AppTheme.AppBarOverlay
    
    在Kotlin中,使用Sandip的答案:

    with(getSupportActionBar()) {
            val titleText: String = title.toString()
            setTitle(Html.fromHtml("<font color='#746E66'>" + titleText + "</font>"))
        }
    
    with(getSupportActionBar()){
    val titleText:String=title.toString()
    setTitle(Html.fromHtml(“+titleText+”))
    }
    
    您可以使用以下代码以编程方式更改它

    toolbar.setTitleTextColor(android.graphics.Color.WHITE);
    

    在android.support.v7.widget.Toolbar内,添加以下行:

    local:titleTextColor="@color/the_color_you_want"
    

    我找到了一个相当简单的解决办法

    可以通过以下方式(通过XML或编程)完成

    首先(XML解决方案):

    
    
    第二(以编程方式):

    val-toolbar=findviewbyd(R.id.toolbar)
    toolbar.setTitleTextColor(Color.WHITE)
    

    第二个解决方案需要min SDK版本超过21,请注意。

    这里我使用下面的代码修复了它,它适用于每个API级别:

    <style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
    <item name="colorPrimary">@color/color_primary</item>
    <item name="colorPrimaryDark">@color/color_primary_dark</item>
    <item name="colorAccent">@color/color_accent</item>
    <item name="toolbarStyle">@style/CustomToolBarStyle</item>
    </style>
    
    <style name="CustomToolBarStyle" parent="@style/Widget.AppCompat.Toolbar">
    <item name="titleTextColor">@color/title_text_color</item>
    </style>
    
    
    @彩色/彩色原色
    @颜色/原色\u深色
    @颜色/颜色口音
    @样式/自定义工具栏样式
    @颜色/标题\u文本\u颜色
    
    你的意思是通过编程或主题?在@RaviKoradiya重复回答的问题是,对于旧版本的Android来说,答案已经过时了,FWIW。这不是答案,而是信息。你不需要编写((ActionBarActivity)getActivity()).getSupportActionBar().setTitle(“Home”);来更改工具栏标题。只需编写setTitle即可(getString(R.string.title));这就是它将支持上述api 23,如果您使用AppCompat库,则不支持。我使用的工具是:
    toolbar.setTitleTextColor(android.graphics.Color.WHITE);
    。谢谢!我们能得到一个具有暗色调意识的现代答案吗?注意“toolbarStyle”仅属性api 21+为什么
    app:theme
    而不是
    android:theme
    (两者都有效)?在此之前,您必须使用
    app:theme
    -如果您使用的版本晚于此版本(此时您应该使用此版本),那么是的,你应该在任何地方都使用android:theme。我已经更新了我的答案,以反映当今的最佳实践。
    with(getSupportActionBar()) {
            val titleText: String = title.toString()
            setTitle(Html.fromHtml("<font color='#746E66'>" + titleText + "</font>"))
        }
    
    toolbar.setTitleTextColor(android.graphics.Color.WHITE);
    
    local:titleTextColor="@color/the_color_you_want"
    
    <androidx.appcompat.widget.Toolbar
        android:id="@+id/toolbar"
        android:layout_width="match_parent"
        android:layout_height="?attr/actionBarSize"
        app:layout_scrollFlags="scroll|enterAlways"
        app:popupTheme="@style/Theme.AppCompat.NoActionBar"
        app:titleTextColor="@color/white" />
    
    val toolbar = findViewById<Toolbar>(R.id.toolbar)
    toolbar.setTitleTextColor(Color.WHITE)
    
    <style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
    <item name="colorPrimary">@color/color_primary</item>
    <item name="colorPrimaryDark">@color/color_primary_dark</item>
    <item name="colorAccent">@color/color_accent</item>
    <item name="toolbarStyle">@style/CustomToolBarStyle</item>
    </style>
    
    <style name="CustomToolBarStyle" parent="@style/Widget.AppCompat.Toolbar">
    <item name="titleTextColor">@color/title_text_color</item>
    </style>