共享操作提供者和操作栏Sherlock溢出问题

3
我遇到了与“操作栏溢出”相关的问题。在搭载Android 2.3 的mdpi设备上,在将两个操作添加到操作栏后,再添加ShareActionProvider时,它会溢出到硬件菜单按钮下方而不是溢出图标下方。
这种情况部分可接受,但在这种情况下,ShareActionProvider根本不起作用。当我滑动菜单面板并点击时,什么也不会发生。
哦,我正在使用AB Sherlock 4.2.0。
你知道有什么解决方法吗? 谢谢!
2个回答

1

目前对我来说解决方法是处理通用的onOptionsItemSelected提供者ID并执行以下操作:

@Override
    public boolean onOptionsItemSelected(MenuItem item) {
        switch (item.getItemId()) {
[...]
            case R.id.menu_item_share:
                startActivity(Intent.createChooser(mShareIntent, getString(R.string.share_title)));
                return true;
            default:
                return super.onOptionsItemSelected(item);
        }
    }

但是如果能够修复这个问题,那就太好了。:)


-2
  • 我已经使用了这个例子,在这个例子中,您需要添加/libs/android-support-v4.jar库文件,并在/src/android/support/v4/app/Watson.java中的public boolean onMenuItemSelected(int featureId, MenuItem item)方法上设置断点。

第115行

当您使用较低版本API的应用程序时,调试源代码时会出现“菜单”按钮。

希望您能找到问题。


很抱歉,我不清楚你的意思。但是我知道问题出在哪里。问题在于共享操作提供程序不是普通的菜单项。当你点击它时,没有onOptionsItemSelected,实际上有一个点击监听器。在我的情况下,提供程序被转换成常规菜单项,在面板菜单下可见。在这种情况下,内部方法showPopup不会被调用。 - pawel.urban

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