Toolbar的使用之二
在使用Toolbar中遇到了很多问题,整理如下。
1.一般首界面都需要多个Tab切换,如果同时使用了Toolbar且不同Tab的MenuItem不一样怎么办呢?
Android 提供了MenuItem#setVisible()方法,可以用来动态显示及隐藏某一个MenuItem。所以有如下两步:
a.加载出所有需要的MenuItem
b.在Tab切换时,调用Toolbar#getMenu#setVisible()方法来显示隐藏即可。
2.Toolbar的文字,图标显示设置
Toolbar toolbar = findViewById(R.id.toolbar);
setSupportActionBar(toolbar);//将toolbar绑定到当前activity
getSupportActionBar().setDisplayShowTitleEnable(false);//不显示title
getSupportActionBar().setDisplayHomeAsUpEnable(false);//不显示导航图标
3.如何居中显示title
Android默认title显示在左侧,如果想要将标题居中如何实现。其实Toolbar也是一个ViewGroup,我们可以在其内部,添加TextView并指定android:layout_gravity="center"即可实现标题居中的效果。
4.如何设置title,触发setTitle?居中显示title中,我们使用自定义的TextView,虽然解决了标题居中的问题,但会发现以前设置Toolbar标题的方法setTitle无法更改标题了,有没办法解决呢?有的,我们可以重写onTitleChange()方法,在其中设置我们自定义的TextView即可。
5.溢出图标的替换
a. 定义溢出图标样式
<style name="ActionOverflowButtonStyle">
<item namef="android:src">@drawable/custome_overflow</item>
</style>
b.在activity的样式中设置android:actionOverflowButtonStyle
<style name="myTheme">
<item name="android:actionOverflowButtonStyle">@style/ActionOverflowButtonStyle</item>
</style>