要改变安卓系统OptionsMenu默认弹窗宽度 不是popmenu,menu是android.support.v7.view.menu
时间: 2023-12-22 07:02:55 浏览: 81
修改安卓系统OptionsMenu默认弹窗宽度的方法与我之前提供的方法类似,只需要将MenuPopupHelper替换为MenuPopupHelperICS即可。
以下是示例代码:
```java
public void setMenuWidth(MenuBuilder menu, int width) {
try {
Field field = menu.getClass().getDeclaredField("mMenuView");
field.setAccessible(true);
Object menuView = field.get(menu);
Class<?> cls = menuView.getClass();
Method method = cls.getDeclaredMethod("getWidth");
int oldWidth = (int) method.invoke(menuView);
if (oldWidth != width) {
method = cls.getDeclaredMethod("setWidth", int.class);
method.invoke(menuView, width);
}
} catch (Exception e) {
e.printStackTrace();
}
}
```
使用时,你可以将上述代码放在`onCreateOptionsMenu`方法中,然后调用`setMenuWidth`方法即可修改OptionsMenu默认弹窗宽度。例如:
```java
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.menu_main, menu);
setMenuWidth((MenuBuilder)menu, 500); // 修改宽度为500
return true;
}
```
阅读全文