作为一般规则,您用于supportInvalidateOptionsMenu
触发菜单项的刷新或某些操作。所有的更新工作都应该放在里面onPrepareOptionsMenu()
。如果您希望片段触发,首先您可以在活动级别执行以下操作:
// YourActivity
boolean trigger = false;
public void invalidate(boolean isTrigger) {
trigger = isTrigger;
supportInvalidateOptionsMenu();
}
@Override
public boolean onPrepareOptionsMenu(Menu menu) {
if(trigger) {
MenuItem menuitem = menu.findViewById(R.id.menu_id);
menuItem.setActionView(R.layout.action_view_refresh);
menuItem.expandActionView();
// reset trigger
trigger = false;
}
return super.onPrepareOptionsMenu(menu);
}
然后,在您的片段 createView 中,您可以调用该invalidate
方法:
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// trigger the actionview
((YourActivity) getActivity()).invalidate(true);
}