我内部有小组menu.xml
,我尝试更改小组的知名度。
//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
),这不会改变组的可见性。(它只会更改三点菜单中项目的可见性。不会更改drawables图标)。仅当我单击菜单上的三个点时,它才开始按我的要求工作。如果我打开应用程序并显示对话框并关闭它,则菜单正常。
打开应用程序后如何解决该问题?
谢谢
编辑
<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();
它仅在3点内显示了Invitation_btn。
当我单击3点时,它将呈现delete_btn的图标。
在这个时候如果我运行这段代码
this.showGroup=false;
invalidateOptionsMenu();
.....
this.showGroup=true;
invalidateOptionsMenu();
.....
一切正常。
解决方案是升级仿真器。也许是模拟器中的错误。当我在某些设备上尝试过时,它可以正常工作。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句