У меня есть группа внутри menu.xml
, и я стараюсь изменить видимость группы.Меню панели инструментов Android - динамически меняются
//in the onCreate
myToolbar = (Toolbar) findViewById(R.id.my_toolbar);
setSupportActionBar(myToolbar);
@Override
public boolean onPrepareOptionsMenu(Menu menu) {
super.onPrepareOptionsMenu(menu);
menu.setGroupVisible(R.id.group, showGroup);
return true;
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.menu, menu);
return true;
}
Это не изменяет видимость группы, когда я открываю приложение. (Когда я взываю к invalidateOptionsMenu
). (Это изменить видимость только из элементов внутри трех точек меню .. не то вводимого коэффициента иконки). Только если я нажму кнопку «Три точки», он начнет работать так, как я хочу. Если я открою приложение и покажу диалог и закрою его, то меню будет работать нормально.
Как я могу исправить его, когда я открываю приложение?
Благодаря
Редактировать
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<group
android:id="@+id/group"
>
<item
android:id="@+id/delete_btn"
android:icon="@drawable/ic_delete_black_24dp"
android:title="delete"
app:showAsAction="always"
/>
<item
android:id="@+id/invite_btn"
android:icon="@drawable/ic_group_add_black_24dp"
android:title="invite"
app:showAsAction="never"
/>
</group>
<!-- Settings, should always be in the overflow -->
<item android:id="@+id/action_settings"
android:title="Sign Out"
app:showAsAction="never"/>
</menu>
если я запускаю этот код:
this.showGroup=true;
invalidateOptionsMenu();
он показывает только invite_btn внутри 3-х точек.
Когда я нажимаю на 3-точки, он отображает значок delete_btn.
В это время, если я запускаю этот код
this.showGroup=false;
invalidateOptionsMenu();
.....
this.showGroup=true;
invalidateOptionsMenu();
.....
каждая вещь работает хорошо.
Можете ли вы представить скриншоты того, что вы имеете в виду. Трудно представить себе, что вы имеете в виду –
Или еще лучше, чтобы было лучше скрыть записи меню индивидуально: 'menu.findItem (R.id.menuItem1) .setVisible (showGroup);' Я думаю, что видимость группы работает только при открытии меню переполнения. Если это то, что вы имели в виду, то я могу добавить его в качестве ответа, чтобы вы могли ** принять ** его. –
@Passerby это то же самое, что и раньше ... – Alon