一、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"

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

847

被折叠的 条评论
为什么被折叠?



