修改PopupMenu宽度
2020-06-08 本文已影响0人
离而不骚
Field mPopupHelper = popupMenu.getClass().getDeclaredField("mPopup");
mPopupHelper.setAccessible(true);
MenuPopupHelper mHelper = (MenuPopupHelper) mPopupHelper.get(popupMenu);
// 显示图标
mHelper.setForceShowIcon(true);
Class standardMenuClass = Class.forName("androidx.appcompat.view.menu.StandardMenuPopup");
// 设置不测量item宽度
Field mHasContentWidth = standardMenuClass.getDeclaredField("mHasContentWidth");
mHasContentWidth.setAccessible(true);
mHasContentWidth.setBoolean(mHelper.getPopup(), true);
// 设置弹出框宽度
Field mContentWidth = standardMenuClass.getDeclaredField("mContentWidth");
mContentWidth.setAccessible(true);
mContentWidth.setInt(mHelper.getPopup(), 400);