操作栏Sherlock的操作项视图

5

我试图在操作栏项目上单击后显示快速操作,因此需要获取父视图来确定应该显示快速操作的位置。

这是我的代码:

@Override 
public boolean onCreateOptionsMenu(final Menu menu) { 
   prepareQuickActions();

   MenuItem menuItem = menu.add("Text"); 
   menuItem.setIcon(R.drawable.ic_action_dialog_map) 
           .setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM);

   menuItem.setOnMenuItemClickListener(new OnMenuItemClickListener() { 
       @Override 
       public boolean onMenuItemClick(final MenuItem item) { 
           quickAction.show(item.getActionView()); 
           return true; 
       } 
   }); 
}

问题在于item.getActionView()返回null。可能存在什么问题?库中的错误吗?

1
getActionView() 返回你使用 setActionView() 设置的任何内容。http://developer.android.com/reference/android/view/MenuItem.html#getActionView() - Jake Wharton
2个回答

2
默认情况下,MenuItem 的操作视图为空,因为它只是一种替代方案,可以用于自定义。据我所知,没有办法获取 MenuItem 的视图。我知道的一个解决方法是先将操作视图设置为您想要的外观(您可以以任何方式进行样式设置),然后它就不会返回 null...
另请参见 在 ActionBar 上为特定菜单项提供不同的外观/样式

0

可能是你的menu.xml不正确。检查android:actionViewClass的路径:


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接