实现步骤
1.在布局文件中添加toolbar
<androidx.appcompat.widget.Toolbar
android:id="@+id/toolbar_main"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="#fff"
android:elevation="2dp"
app:popupTheme="@style/OverflowMenuStyle"
app:title="首页" />
2.在activity中重写方法
override fun onCreateOptionsMenu(menu: Menu?): Boolean {
menuInflater.inflate(R.menu.main_menu, menu)
return super.onCreateOptionsMenu(menu)
}
3.编写menu菜单文件
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<item
android:id="@+id/change_user"
android:title="切换账号"
app:showAsAction="never" />
</menu>
4.重写点击事件方法
override fun onOptionsItemSelected(item: MenuItem?): Boolean {
when (item?.itemId) {
R.id.change_user -> {
//切换账号
startActivity(Intent(this@MainActivity, LoginActivity::class.java))
}
else -> {
}
}
return super.onOptionsItemSelected(item)
}
5.设置toolbar支持
setSupportActionBar(toolbar_main)
这样菜单就会在toolbar上显示出来了
toolbar菜单
6.如果需要修改弹出的菜单样式,可以自定义style文件
<!--溢出[弹出]菜单样式 parent相当于继承【可以不要parent】-->
<style name="OverflowMenuStyle" parent="@style/Widget.AppCompat.PopupMenu.Overflow">
<!-- 是否覆盖锚点,默认为true,即盖住Toolbar -->
<item name="overlapAnchor">false</item>
<item name="android:dropDownWidth">wrap_content</item>
<!--<item name="android:paddingRight">5dp</item>-->
<!--<item name="android:layout_marginTop">5dp</item>-->
<!-- 弹出层背景颜色 -->
<!--<item name="android:popupBackground">@color/darkturquoise</item>-->
<!-- 弹出层垂直方向上的偏移,即在竖直方向上距离Toolbar的距离,值为负则会盖住Toolbar -->
<!--<item name="android:dropDownVerticalOffset">5dp</item>-->
<!-- 弹出层水平方向上的偏移,即距离屏幕左边的距离,负值会导致右边出现空隙 -->
<item name="android:dropDownHorizontalOffset">0dp</item>
<!-- 设置弹出菜单文字颜色 -->
<!--<item name="android:textColor">@color/white</item>-->
</style>
QQ交流群
微信公众号
网友评论