Cara terbaik untuk menyembunyikan semua item dalam menu hanya dengan satu perintah adalah menggunakan "grup" pada xml menu Anda. Cukup tambahkan semua item menu yang akan ada di menu overflow Anda di dalam grup yang sama.
Dalam contoh ini kami memiliki dua item menu yang akan selalu ditampilkan (item reguler dan pencarian) dan tiga item melimpah:
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<item
android:id="@+id/someItemNotToHide1"
android:title="ITEM"
app:showAsAction="always" />
<item
android:id="@+id/someItemNotToHide2"
android:icon="@android:drawable/ic_menu_search"
app:showAsAction="collapseActionView|ifRoom"
app:actionViewClass="android.support.v7.widget.SearchView"
android:title="Search"/>
<group android:id="@+id/overFlowItemsToHide">
<item android:id="@+id/someID"
android:orderInCategory="1" app:showAsAction="never" />
<item android:id="@+id/someID2"
android:orderInCategory="1" app:showAsAction="never" />
<item android:id="@+id/someID3"
android:orderInCategory="1" app:showAsAction="never" />
</group>
</menu>
Kemudian, pada aktivitas Anda (lebih disukai di onCreateOptionsMenu), gunakan perintah setGroupVisible untuk mengatur semua visibilitas item menu menjadi false atau true.
public boolean onCreateOptionsMenu(Menu menu) {
menu.setGroupVisible(R.id.overFlowItems, false); // Or true to be visible
}
Jika Anda ingin menggunakan perintah ini di tempat lain di aktivitas Anda, pastikan untuk menyimpan kelas menu ke lokal, dan selalu periksa apakah menu nol, karena Anda dapat mengeksekusi sebelum createOptionsMenu:
Menu menu;
public boolean onCreateOptionsMenu(Menu menu) {
this.menu = menu;
}
public void hideMenus() {
if (menu != null) menu.setGroupVisible(R.id.overFlowItems, false); // Or true to be visible
}