如何隐藏工具栏上的操作项
How to hide action items on Toolbar
我已经用工具栏替换了操作栏。我的 minSDK-17 和 TargetSDK-21。
所以这就是问题所在。我有 2 个活动和 4 个行动项目。
- 一个
- 乙
- C
- D
所有 4 个行动项目都在 toolbar_actions.xml
中维护
目前这4个action item都显示在两个活动中。但是,我只想在 1st activity
中显示操作项 A、B
我想在第 2 个 activity 中只显示操作项 C、D。如何实现?我认为为每个 activity.
使用不同的 toolbar_actions.xml 文件是没有意义的
或者我应该使用上下文操作栏 (CAB)?我认为仅当操作项用于特定目的(如突出显示、复制、select(如果是 pdf reader 应用程序)或很少使用时,才有意义使用 CAB。
另一个问题是,我想在工具栏中添加一个 spinner/drop-down 列表。工具栏中的微调器能否用于在不同活动之间切换,或者工具栏微调器是否仅限于片段
您可以在每个 activity 中使用 onCreateOptionsMenu 方法来隐藏您想要的操作项。对于第一个 activity,您只想显示项目 A 和 B。所以你隐藏 C 和 D:
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.toolbar_actions, menu);
// Hide action items, you don't want to display
menu.findItem(R.id.C).setVisible(false);
menu.findItem(R.id.D).setVisible(false);
return true;
}
您可以使用带有微调器的工具栏来切换活动,但是您必须将它添加到您想要切换的所有活动(重新使用)。
为了避免 NullPointerExceptions 和 return 实际的 inflation 结果,对 Dejan 的解决方案做了一个小改进:
@Override
public boolean onCreateOptionsMenu(Menu menu) {
boolean result = getMenuInflater().inflate(R.menu.toolbar_actions, menu);
MenuItem actionC = menu.findItem(R.id.C);
if(actionC!=null)
actionC.setVisible(false);
return result;
}
(对不起,我还不能评论)
我已经用工具栏替换了操作栏。我的 minSDK-17 和 TargetSDK-21。 所以这就是问题所在。我有 2 个活动和 4 个行动项目。
- 一个
- 乙
- C
- D
所有 4 个行动项目都在 toolbar_actions.xml
中维护目前这4个action item都显示在两个活动中。但是,我只想在 1st activity
中显示操作项 A、B我想在第 2 个 activity 中只显示操作项 C、D。如何实现?我认为为每个 activity.
使用不同的 toolbar_actions.xml 文件是没有意义的或者我应该使用上下文操作栏 (CAB)?我认为仅当操作项用于特定目的(如突出显示、复制、select(如果是 pdf reader 应用程序)或很少使用时,才有意义使用 CAB。
另一个问题是,我想在工具栏中添加一个 spinner/drop-down 列表。工具栏中的微调器能否用于在不同活动之间切换,或者工具栏微调器是否仅限于片段
您可以在每个 activity 中使用 onCreateOptionsMenu 方法来隐藏您想要的操作项。对于第一个 activity,您只想显示项目 A 和 B。所以你隐藏 C 和 D:
@Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.toolbar_actions, menu); // Hide action items, you don't want to display menu.findItem(R.id.C).setVisible(false); menu.findItem(R.id.D).setVisible(false); return true; }
您可以使用带有微调器的工具栏来切换活动,但是您必须将它添加到您想要切换的所有活动(重新使用)。
为了避免 NullPointerExceptions 和 return 实际的 inflation 结果,对 Dejan 的解决方案做了一个小改进:
@Override
public boolean onCreateOptionsMenu(Menu menu) {
boolean result = getMenuInflater().inflate(R.menu.toolbar_actions, menu);
MenuItem actionC = menu.findItem(R.id.C);
if(actionC!=null)
actionC.setVisible(false);
return result;
}
(对不起,我还不能评论)