ToolBar的使用

本文详细介绍了Android中ToolBar的使用方法,包括简单使用步骤、属性设置及常见问题解决方案。从隐藏ActionBar开始,到在布局中添加和自定义ToolBar,再到解决菜单颜色和PopWindow显示位置的问题,提供了完整的实践指导。

一、ToolBar简单使用

1、定义style,隐藏app的ActionBar,并在manifest中,指定application的主题为刚刚定义的style

    <style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
        <item name="colorPrimary">@color/colorPrimary</item>
        <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
        <item name="colorAccent">@color/colorAccent</item> 
    </style>

    <style name="AppTheme.NoActionBar">
        <item name="windowActionBar">false</item>
        <item name="windowNoTitle">true</item>
    </style>
android:theme="@style/AppTheme.NoActionBar"

2、在布局中添加ToolBar控件,控件全称为:android.support.v7.widget.Toolbar

 <android.support.v7.widget.Toolbar
        android:id="@+id/toolbar"
        android:layout_width="match_parent"
        android:layout_height="?attr/actionBarSize"
        android:background="?attr/colorPrimary" />
  • 注意:需要添加design依赖包:
compile 'com.android.support:design:26.0.0-alpha1'

3、在Activity中声明ToolBar,使用setSupportActionBar()方法设定,Toolbar即能取代原本的ActionBar 了

Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); 
setSupportActionBar(toolbar);

二、ToolBar属性设置

1、代码设置ToolBar

Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
toolbar.setLogo(R.drawable.good_icon);//设置logo
toolbar.setTitle("我的淘宝");//设置主标题
toolbar.setSubtitle("应有尽有");//设置副标题
setSupportActionBar(toolbar);
//getSupportActionBar().setDisplayHomeAsUpEnabled(true);//设置系统Home按钮,必须放在setSupportActionBar(toolbar);语句后
toolbar.setNavigationIcon(R.drawable.head_btn_back_white);//设置左边按钮图标
toolbar.setContentInsetStartWithNavigation(0);//左按钮图标和标题默认有16dp的间距,去掉这个间距,如果没有左图标,可直接设置toolbar属性app:contentInsetStart="0dp",如果有左图标,则设置属性不好用,需要调用方法setContentInsetStartWithNavigation(0)
toolbar.setNavigationOnClickListener(new View.OnClickListener() {//左图标点击事件
      @Override
      public void onClick(View view) {
           Toast.makeText(MainActivity.this, "back", Toast.LENGTH_SHORT).show();
      }
});

2、在布局文件中设置ToolBar的属性

android:background="?attr/colorPrimary"   设置toolbar背景色,与app主题相同

app:contentInsetStart="0dp"   设置左图标与主标题间距为0

app:subtitleTextColor="@color/white"    设置主标题颜色

app:titleTextColor="@color/white"    设置副标题颜色

 

三、ToolBar常见问题解决

1、menu菜单三个点的颜色

设置menu收起图标颜色,就是那三个点的图标 默认的如果使用 light style 就是黑色的,如果使用 dark style 就是白色的。 如何能够自定义颜色?

    <style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
        <item name="colorPrimary">@color/colorPrimary</item>
        <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
        <item name="colorAccent">@color/colorAccent</item>
        <!-- 添加这一句,即可改变图标的颜色-->
        <item name="android:textColorSecondary">#ffffff</item>
    </style>

2、一般情况下,点击menu的按钮,弹出的popwindow会覆盖在toolbar上,不美观,如图:

如何能够让popwindow在toolbar下方显示呢?

    <style name="OverflowMenuStyle" parent="Widget.AppCompat.Light.PopupMenu.Overflow">
        <item name="overlapAnchor">false</item>  <!--设置不覆盖锚点-->
    </style>

    <style name="ToolbarPopupTheme" parent="@style/ThemeOverlay.AppCompat.Light">
        <item name="actionOverflowMenuStyle">@style/OverflowMenuStyle</item>
    </style>

然后在toolbar中设置 app:popupTheme="@style/ToolbarPopupTheme"

 

 

 

~~~~~~~~~~~~~ 学习笔记,欢迎交流 ~~~~~~~~~~~~~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值