支持v7 MenuPopupHelper现在隐藏并限制为LIBRARY_GROUP

Mia*_*LiD 14 android lint android-appcompat

最近我收到了一个lint错误,我的使用android.support.v7.view.menu.MenuPopupHelper现在已被隐藏,并且仅限于在其库组中使用.

确切的消息:

MenuPopupHelper constructor can only be called from within the same library group (groupId=com.android.support)

摘自MenuPopupHelper.java班级:

/**
 * Presents a menu as a small, simple popup anchored to another view.
 *
 * @hide
 */
@RestrictTo(LIBRARY_GROUP)
public class MenuPopupHelper implements MenuHelper {
Run Code Online (Sandbox Code Playgroud)

问题: 任何想法何时以及为何发生这种情况?或者我应该寻找的解决方法是什么?

M-W*_*eEh -2

尝试使用android.support.v7.widget.PopupMenu

PopupMenu popup = new PopupMenu(v.getContext(), v);
popup.inflate(R.menu.mymenu);
//or
//popup.getMenuInflater().inflate(R.menu.mymenu, popup.getMenu());
popup.setOnMenuItemClickListener(new PopupMenu.OnMenuItemClickListener() {
    public boolean onMenuItemClick(MenuItem item) {
        final int itemId = item.getItemId();
        switch (itemId) {
            case R.id.someid:
                //do something
                return true;
            default:
                return false;
        }
    }
});
popup.show();
Run Code Online (Sandbox Code Playgroud)

  • AFAIK PopMenu 不允许您向菜单行添加图标,这就是我们首先切换到“MenuPopupHelper”的原因。 (8认同)