【问题标题】:How can I change color of items on Toolbar如何更改工具栏上项目的颜色
【发布时间】:2019-05-30 14:46:11
【问题描述】:

我有一个工具栏,我想将背景更改为黑色,但默认情况下项目颜色为黑色,我想将其颜色更改为灰色,我该怎么做?非常感谢: My Image about Toolbar

这是我的toolbar.xml

<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="#2196F3"
android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar">

我的样式.xml

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

【问题讨论】:

  • 你想改变图标的​​颜色吗?
  • 是的,改成灰色
  • 这些图标是你创建的还是导入的?
  • &lt;item android:id="@+id/slash_toolbar" android:title="" android:icon="@drawable/ic_voice" app:showAsAction="always" /&gt; 这就是我创建它的方式
  • 好的,在创建图标时您可以选择颜色。我会告诉你如何

标签: android material-design android-toolbar android-color


【解决方案1】:

在创建图标或矢量资源时,您可以选择颜色

点击颜色选择器。

如果您想在代码中更改颜色,请在 MenuItem 中添加 app:iconTint="@color/yourcolor" 以更改图标颜色。

<item
android:icon="@drawable/ic_share_white_24dp"
android:id="@+id/action_share"
android:title="@string/action_share"
android:orderInCategory="200"
app:iconTint="@color/yourcolor"
app:showAsAction="ifRoom"
app:actionProviderClass="android.support.v7.widget.ShareActionProvider"/>

要更改 3 点图标颜色,请尝试将其添加到 styles.xml

<style name="YourCustomTheme.OverFlow">
    <item name="android:src">@drawable/my_overflow_image</item>
</style>

【讨论】:

  • 这是您一直在寻找的吗?
  • 是的,这也是一种方式,所以我想知道可以通过在styles.xml中自定义主题来做到这一点
  • 如果你的主主题是浅色的而你的ActionBar是深色的,你的ActionBar/Toolbar必须使用主题ThemeOverlay.AppCompat.Dark.ActionBar
  • 三个垂直点,我怎样才能改变它的颜色? @Dev Sharma
  • 不,您的解决方案仅适用于我添加的图标,但菜单的“三个垂直点”不起作用
【解决方案2】:

改变图标的​​色调属性。

通过 xml:

<item android:id="@+id/slash_toolbar" 
android:title="" 
android:icon="@drawable/ic_voice" 
app:showAsAction="always" 
android:tint="@android:color/white"/>

通过code

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    getMenuInflater().inflate(R.menu.menu_main, menu);

    for(int i = 0; i < menu.size(); i++){
        Drawable drawable = menu.getItem(i).getIcon();
        if(drawable != null) {
            drawable.mutate();
            drawable.setColorFilter(getResources().getColor(R.color.textColorPrimary), PorterDuff.Mode.SRC_ATOP);
        }
    }

    return true;
}

改变三个点的颜色put it in your style.xml in AppTheme:

<!-- android:textColorSecondary is the color of the menu overflow icon (three vertical dots) -->
<item name="android:textColorSecondary">@color/white</item>

【讨论】:

  • 我可以把android:tint="@android:color/white"放在哪里?
  • 是的:下面的代码有效,但图标“3dots”无效
  • 我已更新答案以显示如何更改“三点”颜色
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-04-21
  • 2016-05-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多