更改工具栏中的标题颜色?
Change title color in toolbar?
我有一个我使用的工具栏,并将标题设置为:
((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>
XML:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#e5e5e5"
android:orientation="vertical" >
<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"
style="@style/Widget.MyApp.ActionBar">
<Spinner
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/statsSpin"
android:spinnerMode="dropdown"
android:textColor="#FFFFFF"/>
</android.support.v7.widget.Toolbar>
<ListView
android:id="@+id/yourStats"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:dividerHeight="0px"
android:divider="@null"
>
</ListView>
</LinearLayout>
程序化:
toolbar.setTitleTextColor(0xFFFFFFFF);
根据 Theme vs Style blog post by the creator of AppCompat and the post on version 21 of AppCompat,DarkActionBar 工具栏(即具有深色背景和浅色文本的 Toolbar
)可以通过将 android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
添加到您的 Toolbar
的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>
这会将文本颜色和默认颜色更改为许多属性(例如您的 Spinner
为深色背景所需的浅色文本。
在应用程序基础主题中创建新样式
<style name="custom_toolbar" parent="@style/Widget.AppCompat.Toolbar">
<item name="titleTextColor">#replace with color</item>
</style>
并使用工具栏的样式
<item name="toolbarStyle">@style/custom_toolbar</item>
如果您只想更改标题文本颜色,
试试这个..
getSupportActionBar().setTitle(Html.fromHtml("<font color='#746E66'>"+titleText+"</font>"));
有效..!!
在 tachyonflux 上扩展,用 HEX 设置颜色
toolbar.setTitleTextColor(Color.parseColor("#519c3f"));
toolbar.setTitleTextColor(getResources().getColor(R.color.black));
(工具栏是您在活动中为工具栏指定的名称 class)
(在你的颜色值 xml 中设置你想要的颜色并将其引用到你选择的颜色名称,如此处所示我保留了一些主要颜色的正常名称)
我花了一些时间自己弄明白了,但这是我让它工作的唯一方法,ThemEditor 应该允许这样做,但它就是这样。
在xml中:
app:titleTextColor="@color/White" as
<android.support.v7.widget.Toolbar
android:id="@+id/tb_top"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="?attr/colorPrimary"
android:minHeight="?attr/actionBarSize"
app:theme="@style/AppTheme.DarkToolbar"
app:titleTextColor="@color/White" />
我知道上面有很多答案,希望对不明白上面答案的人有所帮助。
Android 有一个名为 Toolbar.This 的视图,该视图的标题始终采用 color.xml 资源的默认颜色,项目名称为 accent。您可以通过两种方式更改工具栏颜色。
通过 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
在 activity 或片段中以编程方式通过。
Toolbar toolbar = (Toolbar)findViewById(R.id.toolbar);
toolbar.setTitleTextColor(ContextCompat.getColor(this, R.color.colorAccent));
使用此代码
<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 文件夹添加两个引用,如下所示
attrs.xml
<?xml version="1.0" encoding="utf-8"?>
<resources>
<attr name="toolbar_theme" format="reference" />
<attr name="toolbar_theme_title" format="reference" />
</resources>
参考定义后在 style.xml 中创建样式,如下所示
style.xml
<style name="CustomTheme" parent="Theme.AppCompat.Light.NoActionBar">
<item name="colorPrimary">#00A4E4</item>
<item name="colorPrimaryDark">#AB0634</item>
<item name="colorAccent">#AB0634</item>
<item name="toolbar_theme">@style/CustomTheme.Toolbar</item>
<item name="toolbar_theme_title">@style/CustomTheme.Toolbar.Title</item>
<item name="android:textColorPrimary">@color/black</item>
<item name="android:textColorSecondary">@android:color/black</item>
<item name="windowActionModeOverlay">true</item>
</style>
<style name="CustomTheme.Toolbar" parent="ThemeOverlay.AppCompat.ActionBar">
<!-- if you have a navigationdrawer you change it color also -->
<item name="colorControlNormal">#AB0634</item>
</style>
<style name="CustomTheme.Toolbar.Title" parent="TextAppearance.Widget.AppCompat.Toolbar.Title">
<!-- Set title size -->
<item name="android:textSize">@dimen/abc_text_size_title_material_toolbar</item>
<!-- Set title color -->
<item name="android:textColor">#AB0634</item>
</style>
现在我们在[=中创建了toolbar_theme和toolbar_theme_title参考62=] 而不是在 style.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" />
就是这样。您可以通过编程方式提供此主题或在 androidmanifest.xml 中设置,如下所示。
以编程方式
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setTheme(R.style.CustomTheme); // (for Custom theme)
this.setContentView(R.layout.myactivity);
androidmanifest.xml
<application
android:theme="@style/CustomTheme">
或
<activity
android:theme="@style/CustomTheme">
您可以通过扩展 Widget.AppCompat.Toolbar 并设置 titleTextAppearance 和 subtitleTextAppearance 属性来定义自定义工具栏样式。这样您就可以更改工具栏标题和副标题的颜色和文本大小以供参考
http://www.zoftino.com/android-toolbar-tutorial.
<style name="MyAppTheme" parent="Theme.AppCompat.Light.NoActionBar">
<item name="colorPrimary">@color/colorPrimary</item>
<item name="colorPrimaryDark">@color/colorPrimaryDark</item>
<item name="toolbarStyle">@style/MyToolBarStyle</item>
</style>
<style name="MyToolBarStyle" parent="Widget.AppCompat.Toolbar">
<item name="titleTextAppearance">@style/MyTitleTextAppearance</item>
<item name="subtitleTextAppearance">@style/MySubTitleTextAppearance</item>
</style>
<style name="MyTitleTextAppearance" parent="TextAppearance.Widget.AppCompat.Toolbar.Title">
<item name="android:textSize">25dp</item>
<item name="android:textColor">#ff3d00</item>
</style>
<style name="MySubTitleTextAppearance" parent="TextAppearance.Widget.AppCompat.Toolbar.Subtitle">
<item name="android:textSize">20dp</item>
<item name="android:textColor">#1976d2</item>
</style>
您可以使用属性 actionBarTheme 更改操作栏的主题,如下所示。虽然它已添加到 API 级别 21,但它似乎与旧的 API 兼容。
<style name="AppTheme" parent="Theme.AppCompat.Light">
<item name="actionBarTheme">@style/AppTheme.AppBarOverlay</item>
</style>
在 Kotlin 中,使用 Sandip 的回答:
with(getSupportActionBar()) {
val titleText: String = title.toString()
setTitle(Html.fromHtml("<font color='#746E66'>" + titleText + "</font>"))
}
您可以使用以下代码以编程方式更改它。
toolbar.setTitleTextColor(android.graphics.Color.WHITE);
在 android.support.v7.widget.Toolbar 内,添加此行:
local:titleTextColor="@color/the_color_you_want"
我找到了相当简单的解决方案。
可以通过以下方式完成(通过XML或以编程方式)。
第一个(XML解):
<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)
第二种解决方案要求 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>
我有一个我使用的工具栏,并将标题设置为:
((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>
XML:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#e5e5e5"
android:orientation="vertical" >
<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"
style="@style/Widget.MyApp.ActionBar">
<Spinner
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/statsSpin"
android:spinnerMode="dropdown"
android:textColor="#FFFFFF"/>
</android.support.v7.widget.Toolbar>
<ListView
android:id="@+id/yourStats"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:dividerHeight="0px"
android:divider="@null"
>
</ListView>
</LinearLayout>
程序化:
toolbar.setTitleTextColor(0xFFFFFFFF);
根据 Theme vs Style blog post by the creator of AppCompat and the post on version 21 of AppCompat,DarkActionBar 工具栏(即具有深色背景和浅色文本的 Toolbar
)可以通过将 android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
添加到您的 Toolbar
的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>
这会将文本颜色和默认颜色更改为许多属性(例如您的 Spinner
为深色背景所需的浅色文本。
在应用程序基础主题中创建新样式
<style name="custom_toolbar" parent="@style/Widget.AppCompat.Toolbar">
<item name="titleTextColor">#replace with color</item>
</style>
并使用工具栏的样式
<item name="toolbarStyle">@style/custom_toolbar</item>
如果您只想更改标题文本颜色, 试试这个..
getSupportActionBar().setTitle(Html.fromHtml("<font color='#746E66'>"+titleText+"</font>"));
有效..!!
在 tachyonflux 上扩展,用 HEX 设置颜色
toolbar.setTitleTextColor(Color.parseColor("#519c3f"));
toolbar.setTitleTextColor(getResources().getColor(R.color.black));
(工具栏是您在活动中为工具栏指定的名称 class) (在你的颜色值 xml 中设置你想要的颜色并将其引用到你选择的颜色名称,如此处所示我保留了一些主要颜色的正常名称) 我花了一些时间自己弄明白了,但这是我让它工作的唯一方法,ThemEditor 应该允许这样做,但它就是这样。
在xml中:
app:titleTextColor="@color/White" as
<android.support.v7.widget.Toolbar
android:id="@+id/tb_top"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="?attr/colorPrimary"
android:minHeight="?attr/actionBarSize"
app:theme="@style/AppTheme.DarkToolbar"
app:titleTextColor="@color/White" />
我知道上面有很多答案,希望对不明白上面答案的人有所帮助。
Android 有一个名为 Toolbar.This 的视图,该视图的标题始终采用 color.xml 资源的默认颜色,项目名称为 accent。您可以通过两种方式更改工具栏颜色。
通过 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
在 activity 或片段中以编程方式通过。
Toolbar toolbar = (Toolbar)findViewById(R.id.toolbar); toolbar.setTitleTextColor(ContextCompat.getColor(this, R.color.colorAccent));
使用此代码
<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 文件夹添加两个引用,如下所示
attrs.xml
<?xml version="1.0" encoding="utf-8"?>
<resources>
<attr name="toolbar_theme" format="reference" />
<attr name="toolbar_theme_title" format="reference" />
</resources>
参考定义后在 style.xml 中创建样式,如下所示
style.xml
<style name="CustomTheme" parent="Theme.AppCompat.Light.NoActionBar">
<item name="colorPrimary">#00A4E4</item>
<item name="colorPrimaryDark">#AB0634</item>
<item name="colorAccent">#AB0634</item>
<item name="toolbar_theme">@style/CustomTheme.Toolbar</item>
<item name="toolbar_theme_title">@style/CustomTheme.Toolbar.Title</item>
<item name="android:textColorPrimary">@color/black</item>
<item name="android:textColorSecondary">@android:color/black</item>
<item name="windowActionModeOverlay">true</item>
</style>
<style name="CustomTheme.Toolbar" parent="ThemeOverlay.AppCompat.ActionBar">
<!-- if you have a navigationdrawer you change it color also -->
<item name="colorControlNormal">#AB0634</item>
</style>
<style name="CustomTheme.Toolbar.Title" parent="TextAppearance.Widget.AppCompat.Toolbar.Title">
<!-- Set title size -->
<item name="android:textSize">@dimen/abc_text_size_title_material_toolbar</item>
<!-- Set title color -->
<item name="android:textColor">#AB0634</item>
</style>
现在我们在[=中创建了toolbar_theme和toolbar_theme_title参考62=] 而不是在 style.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" />
就是这样。您可以通过编程方式提供此主题或在 androidmanifest.xml 中设置,如下所示。
以编程方式
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setTheme(R.style.CustomTheme); // (for Custom theme)
this.setContentView(R.layout.myactivity);
androidmanifest.xml
<application
android:theme="@style/CustomTheme">
或
<activity
android:theme="@style/CustomTheme">
您可以通过扩展 Widget.AppCompat.Toolbar 并设置 titleTextAppearance 和 subtitleTextAppearance 属性来定义自定义工具栏样式。这样您就可以更改工具栏标题和副标题的颜色和文本大小以供参考 http://www.zoftino.com/android-toolbar-tutorial.
<style name="MyAppTheme" parent="Theme.AppCompat.Light.NoActionBar">
<item name="colorPrimary">@color/colorPrimary</item>
<item name="colorPrimaryDark">@color/colorPrimaryDark</item>
<item name="toolbarStyle">@style/MyToolBarStyle</item>
</style>
<style name="MyToolBarStyle" parent="Widget.AppCompat.Toolbar">
<item name="titleTextAppearance">@style/MyTitleTextAppearance</item>
<item name="subtitleTextAppearance">@style/MySubTitleTextAppearance</item>
</style>
<style name="MyTitleTextAppearance" parent="TextAppearance.Widget.AppCompat.Toolbar.Title">
<item name="android:textSize">25dp</item>
<item name="android:textColor">#ff3d00</item>
</style>
<style name="MySubTitleTextAppearance" parent="TextAppearance.Widget.AppCompat.Toolbar.Subtitle">
<item name="android:textSize">20dp</item>
<item name="android:textColor">#1976d2</item>
</style>
您可以使用属性 actionBarTheme 更改操作栏的主题,如下所示。虽然它已添加到 API 级别 21,但它似乎与旧的 API 兼容。
<style name="AppTheme" parent="Theme.AppCompat.Light">
<item name="actionBarTheme">@style/AppTheme.AppBarOverlay</item>
</style>
在 Kotlin 中,使用 Sandip 的回答:
with(getSupportActionBar()) {
val titleText: String = title.toString()
setTitle(Html.fromHtml("<font color='#746E66'>" + titleText + "</font>"))
}
您可以使用以下代码以编程方式更改它。
toolbar.setTitleTextColor(android.graphics.Color.WHITE);
在 android.support.v7.widget.Toolbar 内,添加此行:
local:titleTextColor="@color/the_color_you_want"
我找到了相当简单的解决方案。
可以通过以下方式完成(通过XML或以编程方式)。
第一个(XML解):
<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)
第二种解决方案要求 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>