Toolbar添加menu菜單

實現步驟

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>
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章