android.support.v7.view.menu.MenuPopupHelper Java Examples

The following examples show how to use android.support.v7.view.menu.MenuPopupHelper. You can vote up the ones you like or vote down the ones you don't like, and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example #1
Source File: PopupMenuActivity.java    From MaterialDesignDemo with MIT License 6 votes vote down vote up
public void showPopupMenu(View view) throws NoSuchFieldException, IllegalAccessException {
    PopupMenu popupMenu = new PopupMenu(this, view);
    //设置 PopupMenu 的显示菜单项
    popupMenu.inflate(R.menu.main);
    // popupMenu.getMenuInflater().inflate(R.menu.main, popupMenu.getMenu());//与一行没什么区别
    //默认 PopupMenu 不显示条目icon,可以通过反射来强制使其显示icon
    Field field = popupMenu.getClass().getDeclaredField("mPopup");
    field.setAccessible(true);
    MenuPopupHelper mHelper = (MenuPopupHelper) field.get(popupMenu);
    mHelper.setForceShowIcon(true);
    //设置 PopupMenu 的条目点击事件(点击后会自动dismiss)
    popupMenu.setOnMenuItemClickListener(new PopupMenu.OnMenuItemClickListener() {
        @Override
        public boolean onMenuItemClick(MenuItem item) {
            Toast.makeText(getApplicationContext(), item.getTitle(), Toast.LENGTH_SHORT).show();
            return false;
        }
    });
    //显示 PopupMenu
    popupMenu.show();
}
 
Example #2
Source File: EditorActivity.java    From spline with Apache License 2.0 5 votes vote down vote up
@Override
public void onClick(View v) {
    MenuPopupHelper menuHelper = new MenuPopupHelper(this,
            (MenuBuilder) mLayerTypePopup.getMenu(),
            mBinding.addLayerBtn);
    menuHelper.setForceShowIcon(true);
    menuHelper.show();
}
 
Example #3
Source File: ToolbarContentTintHelper.java    From APlayer with GNU General Public License v3.0 5 votes vote down vote up
public static void applyOverflowMenuTint(final @NonNull Context context, final Toolbar toolbar,
    final @ColorInt int color) {
  if (toolbar == null) {
    return;
  }
  toolbar.post(new Runnable() {
    @Override
    public void run() {
      try {
        Field f1 = Toolbar.class.getDeclaredField("mMenuView");
        f1.setAccessible(true);
        ActionMenuView actionMenuView = (ActionMenuView) f1.get(toolbar);
        Field f2 = ActionMenuView.class.getDeclaredField("mPresenter");
        f2.setAccessible(true);

        // Actually ActionMenuPresenter
        BaseMenuPresenter presenter = (BaseMenuPresenter) f2.get(actionMenuView);
        Field f3 = presenter.getClass().getDeclaredField("mOverflowPopup");
        f3.setAccessible(true);
        MenuPopupHelper overflowMenuPopupHelper = (MenuPopupHelper) f3.get(presenter);
        setTintForMenuPopupHelper(context, overflowMenuPopupHelper, color);

        Field f4 = presenter.getClass().getDeclaredField("mActionButtonPopup");
        f4.setAccessible(true);
        MenuPopupHelper subMenuPopupHelper = (MenuPopupHelper) f4.get(presenter);
        setTintForMenuPopupHelper(context, subMenuPopupHelper, color);
      } catch (Exception e) {
        e.printStackTrace();
      }
    }
  });
}
 
Example #4
Source File: AppInfoListAdapter.java    From AppPlus with MIT License 5 votes vote down vote up
private void makePopForceShowIcon(PopupMenu popupMenu) {
    try {
        Field mFieldPopup=popupMenu.getClass().getDeclaredField("mPopup");
        mFieldPopup.setAccessible(true);
        MenuPopupHelper mPopup = (MenuPopupHelper) mFieldPopup.get(popupMenu);
        mPopup.setForceShowIcon(true);
    } catch (Exception e) {

    }
}
 
Example #5
Source File: AppFileListAdapter.java    From AppPlus with MIT License 5 votes vote down vote up
private void makePopForceShowIcon(PopupMenu popupMenu) {
    try {
        Field mFieldPopup=popupMenu.getClass().getDeclaredField("mPopup");
        mFieldPopup.setAccessible(true);
        MenuPopupHelper mPopup = (MenuPopupHelper) mFieldPopup.get(popupMenu);
        mPopup.setForceShowIcon(true);
    } catch (Exception e) {

    }
}