AppCompact v21 带片段菜单的后退导航
AppCompact v21 back navigation with fragment menu
所以..我正面临一个在过去几个小时里一直让我抓狂的问题。
我有一个使用 AppCompact v21 和工具栏的应用程序。我还使用以下方式处理后退导航:
getSupportActionBar().setDefaultDisplayHomeAsUpEnabled(true);
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
getSupportActionBar().setHomeButtonEnabled(true);
与清单上的父 activity 组合。哪个完美....
我的问题是:
我有一个 activity,其中有 3 个选项卡和一个 viewpager,我需要其中一个片段来拥有自己的菜单。
我可以很好地展开菜单,但是一旦菜单展开,该片段中的后退箭头就不再起作用。在视图寻呼机的其他 2 个片段中,通过工具栏的后退导航仍然有效。
在我的片段中:
// Inside onCreate...
this.setHasOptionsMenu(true);
// Later on somewhere else...
@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
super.onCreateOptionsMenu(menu, inflater);
inflater.inflate(R.menu.menu_submit, menu);
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
super.onOptionsItemSelected(item);
// my menu logic goes here.
return true;
}
有什么建议吗?
当您总是在 onOptionsItemSelected()
中 return true
时,这意味着您已经处理了所有可能的菜单项(包括向上按钮)。如果您不处理其中一件物品,您应该 return super.onOptionsItemSelected(item)
:
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
// Your menu logic such as
case R.id.your_menu_item:
// Do something
return true;
default:
return super.onOptionsItemSelected(item);
}
}
所以..我正面临一个在过去几个小时里一直让我抓狂的问题。
我有一个使用 AppCompact v21 和工具栏的应用程序。我还使用以下方式处理后退导航:
getSupportActionBar().setDefaultDisplayHomeAsUpEnabled(true);
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
getSupportActionBar().setHomeButtonEnabled(true);
与清单上的父 activity 组合。哪个完美....
我的问题是:
我有一个 activity,其中有 3 个选项卡和一个 viewpager,我需要其中一个片段来拥有自己的菜单。
我可以很好地展开菜单,但是一旦菜单展开,该片段中的后退箭头就不再起作用。在视图寻呼机的其他 2 个片段中,通过工具栏的后退导航仍然有效。
在我的片段中:
// Inside onCreate...
this.setHasOptionsMenu(true);
// Later on somewhere else...
@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
super.onCreateOptionsMenu(menu, inflater);
inflater.inflate(R.menu.menu_submit, menu);
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
super.onOptionsItemSelected(item);
// my menu logic goes here.
return true;
}
有什么建议吗?
当您总是在 onOptionsItemSelected()
中 return true
时,这意味着您已经处理了所有可能的菜单项(包括向上按钮)。如果您不处理其中一件物品,您应该 return super.onOptionsItemSelected(item)
:
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
// Your menu logic such as
case R.id.your_menu_item:
// Do something
return true;
default:
return super.onOptionsItemSelected(item);
}
}