修改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:然后再在代码中设置

扫描二维码关注公众号,回复: 6184134 查看本文章
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:使菜单项和它的图标,菜单文本一起显示。

猜你喜欢

转载自blog.csdn.net/zaq977684/article/details/81979984