问题:如果一个 MenuItem(或哪些 MenuItem)在 ActionBar 的溢出菜单中,有没有办法检查代码? 我正在使用 ActionBarSherlock
我需要这个的原因是因为我有一堆图标,如果有空间,它们将显示在 ActionBar 中。我有一个全息深色主题,所以图标就是为了适应这个主题。
当菜单项被放入溢出菜单时,我的问题就来了。在 Pre-Honeycomb 设备上,这意味着它们将在用户按下菜单按钮时显示。此菜单的背景与我的 ActionBar 完全相反,我想要一组不同的图标来适应它。
最佳答案
我可能找到了这个问题的解决方案:在设计指南 ( here ) 中,有一个表格显示根据倾斜宽度显示的操作栏项目数。
基于该表,我编写了以下代码:
@Override
public boolean onPrepareOptionsMenu(Menu menu) {
MenuItem search = menu.findItem(R.id.menu_search);
// Get width in dp
DisplayMetrics metrics = new DisplayMetrics();
Display display = getWindowManager().getDefaultDisplay();
display.getMetrics(metrics);
float logicalDensity = metrics.density;
int dp = (int) (display.getWidth() / logicalDensity + 0.5);
if (dp < 360) { // only two icons
search.setIcon(R.drawable.ic_menu_search); // Show menu icon for pre-3.0 menu
} else {
search.setIcon(R.drawable.ic_action_search); // Show action bar icon for action bar
}
return true;
}
关于android - 检查 MenuItem 是否在 ActionBar 溢出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11999260/