Android · 2017年11月7日 0

ToolBar 修改菜单字体和颜色

ToolBar基本使用


关于ToolBar的使用,网上已经非常多了,

思路决定出路

so, 思路是这样的:

  1. 隐藏ActionBar,这里有两种设定方法
  2. 布局文件中声明, 没什么说的
  3. 代码中设定一下,没什么说的

可以参考这里学习:
Android 5.x Theme 与 ToolBar 实战
Android Toolbar样式定制详解

ToolBar菜单


ToolBar使用菜单,思路长这样:

首先在menu/menu_main.xml去声明布局,然后重写onCreateOptionsMenu(inflate该布局)和onOptionsItemSelected(设定其点击事件)即可,当然也可以通过toolbar.setOnMenuItemClickListener实现点击menu的回调。

这里遇到个坑,我只需要有一个菜单,默认设定后颜色为黑色,和橙色的colorPrimary不搭调,然后想着设定为白色,没想到掉坑里去了,其实我不是一个人:Android中菜单的字体太小了:设置actionbar中menu的text的size,这位大神很给力,尝试了各种方法,最后搞掂,思路清晰,粗暴但是不简单呐。

我直接从他的解决方法入手,开始搞,然而不是很靠谱,只能修改字体大小,颜色还是黑的,丑爆。
因此来到了这里:Android Toolbar样式定制详解

方法就是添加 ToolBar 主题

这个demo运行,完美解决,但是在我自己的项目里,一直出不来效果,一定是哪里出现了问题。。

没错,确实是我的问题,凡事还是多反思自己,我画蛇添足咯,多写了点东西,是什么呢,你们应该猜到了,我们来看:

首先敲定ToolBar布局,加一个theme:

    <android.support.v7.widget.Toolbar
        android:id="@+id/toolbar"
        android:layout_width="match_parent"
        android:layout_height="?/attr/actionBarSize"
        android:background="?attr/colorPrimary"
        app:theme="@style/ToolbarTheme">
    </android.support.v7.widget.Toolbar>

然后定义ToolBarTheme样式

注意,此处的坑较多,首先,要有个parent,然后actionMenuTextColor前面不能有android前缀,谁加谁怀孕,当然在values-v21/styles.xml里是需要添加android前缀的。

" data-snippet-id="ext.124cfa678dc23e56377d3d6a603f2c55" data-snippet-saved="false" data-codota-status="done">    <!-- ToolBar菜单样式 -->
    <style name="ToolbarTheme" parent="@style/ThemeOverlay.AppCompat.ActionBar">
        <item name="actionMenuTextColor">@color/white</item> <!--  敲定颜色-->
        <item name="android:textSize">18sp</item> <!--  搞掂字体大小-->
<item name="android:textAllCaps">false</item>
 </style>

好了,这样就可以了,ToolBar 修改菜单字体和颜色完成。

<item name="android:textAllCaps">false</item>
设置防止都是大写

Share this: