修改ToolBar的标题、子标题字体大小和颜色,toolbar menu字体的大小和颜色以及注意事项

在 Android 5.0 开始推出一个 Material Design 风格的导航Toolbar 控件。由于Toolbar的可定制度高,所以已经逐步替代掉了ActionBar。可以自定义以下几种元素,实现不同风格的Toolbar:

1.设置导航栏图标

toolbar.setNavigationIcon(R.drawable.back);

2.设置App的logo

toolbar.setLogo(R.mipmap.ic_launcher);

3.支持设置标题和子标题

toolbar.setTitle("大标题");
toolbar.setSubtitle("子标题");

4.支持添加一个或多个的自定义控件

5.支持Action Menu

一、修改ToolBar的标题、子标题字体大小和颜色,toolbar menu字体的大小和颜色

1)、修改ToolBar的标题的字体颜色大小

     在style文件上添加

<!-- 设置Toolbar标题字体的颜色大小 -->
<style name="Toolbar.TitleText" parent="TextAppearance.Widget.AppCompat.Toolbar.Title">
    <item name="android:textSize">20sp</item><!--toolbar标题字体大小-->
    <item name="android:textColor">#ffffff</item><!--toolbar标题字体颜色-->
</style>

法1:然后再在布局文件中添加上

app:titleTextAppearance="@style/Toolbar.TitleText"

法2:然后再在代码中设置

toolbar.setTitleTextAppearance(this, R.style.Toolbar_TitleText);

2)、修改ToolBar的子标题的字体颜色大小

<!-- 设置Toolbar 子标题subtitle标题字体的大小 -->
<style name="Toolbar.SubTitleText" parent="TextAppearance.Widget.AppCompat.Toolbar.Title">
    <item name="android:textSize">15sp</item><!--子标题字体大小-->
    <item name="android:textColor">#ffffff</item><!--子标题字体颜色-->
</style>

法1:然后再在布局文件中添加上

app:subtitleTextAppearance="@style/Toolbar.SubTitleText"

法2:然后再在代码中设置

toolbar.setSubtitleTextAppearance(this,R.style.Toolbar_SubTitleText);

3)、修改ToolBar Menu的字体颜色大小

<!--toolbat mean的字体颜色和大小-->
<style name="ToolbarTheme" parent="Theme.AppCompat.Light.NoActionBar">
    <item name="actionMenuTextColor">#ffffff</item> <!--menu字体颜色-->
    <item name="android:textSize">18sp</item> <!--menu字体大小-->
</style>

然后再在布局文件中添加上

app:theme="@style/ToolbarTheme"

二、注意事项:

1)在根布局中添加

xmlns:app="http://schemas.android.com/apk/res-auto"

2)在布局中设置大标题和二级标题正确方法是

app:title="大标题"
app:subtitle="子标题"

而设置以下的方法是没有作用的

android:title="大标题"
android:subtitle="子标题"

3)上边ToolBar Menu的style中item actionMenuTextColor前边是不能加android:的,加上之后没作用! 

4)在使用Toolbar之前一定要去掉系统自带的ActionBar,可以给Activity使用NoActionBar主题,或者在setContentView()之前调用supportRequestWindowFeature(Window.FEATURE_NO_TITLE)(或者是requestWindowFeature(Window.FEATURE_NO_TITLE))。

5)若在代码中设置logo。大标题和子标题都要在setSupportActionBar(toolbar)前执行

三、ToolBar menu的使用

     在代码中重写onCreateOptionsMenu方法

/**
 * 该方法是用来加载菜单布局的
 * @param menu
 * @return
 */
@Override
public boolean onCreateOptionsMenu(Menu menu) {
    getMenuInflater().inflate(R.menu.menu_main, menu);
    return true;
}

菜单的点击事件

private static Toolbar.OnMenuItemClickListener onMenuItemClickListener=new Toolbar.OnMenuItemClickListener() {
    @Override
    public boolean onMenuItemClick(MenuItem menuItem) {
        switch (menuItem.getItemId()){
            case R.id.action_search://因为使用android.support.v7.widget.SearchView类,可以在
                break;
            case R.id.action_share:
                break;
            case R.id.action_more:
                break;
        }
        return true;
    }
};

四、toolbar menu中app:showAsAction各个属性值作用

这个属性的值有: 
  1、always:使菜单项一直显示在ToolBar上。 
  2、ifRoom:如果有足够的空间,这个值会使菜单项显示在ToolBar上。 
  3、never:使菜单项永远都不出现在ToolBar上,在…的子项中显示。 
  4、withText:使菜单项和它的图标,菜单文本一起显示。

  • 9
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值