Android
Kotlin
AndroidStudio
android開発

menuの一部のアイコンを隠す

menuについて

画面上部ツールバーに配置する複数存在するボタンをカスタマイズできる

実装

カスタムメニュー用xml
今回はメニューを2つ配置

main_menu.xml
<menu
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto">

    <item
        android:id="@+id/main_menu_1"
        android:icon="@android:drawable/ic_menu_account_list"
        android:title="menu1"
        app:showAsAction="ifRoom"/>

    <item
        android:id="@+id/main_menu_2"
        android:icon="@android:drawable/ic_menu_add"
        android:title="menu2"
        app:showAsAction="ifRoom"/>

</menu>

menu1のみ隠す

MainActivity.kt
    override fun onCreateOptionsMenu(menu: Menu?): Boolean {
        menuInflater.inflate(R.menu.main_menu, menu) // カスタムメニュー設定
        val menu1 = menu?.findItem(R.id.main_menu_1) // menu1取得
        menu1?.isVisible = false // 隠す
        return true
    }