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

问题描述 投票:12回答:2

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

确切的消息:

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 {

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

android appcompat lint
2个回答
0
投票

我刚刚发现here这是该工具的预发布版本中的一个错误。

如果您想要项目范围的解决方法,请将下面的代码段放在项目的build.gradle文件中

android {
  lintOptions {
    disable 'RestrictedApi'
  }
}

要么 使用下面的注释来禁止该特定方法或类的lint警告

@SuppressLint("RestrictedApi")

-3
投票

尝试使用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();
© www.soinside.com 2019 - 2024. All rights reserved.