實現步驟
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上顯示出來了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>