2017-07-07 12 views
8

Gần đây tôi đã gặp phải lỗi lint khi sử dụng android.support.v7.view.menu.MenuPopupHelper hiện bị ẩn và hạn chế chỉ được sử dụng trong nhóm thư viện của nó.Hỗ trợ v7 MenuPopupHelper hiện bị ẩn và giới hạn ở LIBRARY_GROUP

chính xác thông điệp:

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

Trích từ lớp MenuPopupHelper.java:

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

Câu hỏi: Bất cứ ý tưởng khi nào và tại sao điều này xảy ra? hoặc whatar workaround mà tôi nên tìm?

Trả lời

-1

Hãy thử sử dụng android.support.v7.widget.PopupMenu thay vì:

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(); 
+4

AFAIK PopMenu không cho phép bạn thêm các biểu tượng để hàng đơn, đó là lý do chúng tôi chuyển sang 'MenuPopupHelper' ở nơi đầu tiên. –

Các vấn đề liên quan