1
我在我的应用程序中实现了一个自定义的PopupMenu,并面临一个难题样式。AppCompat v21 PopupMenu风格
PopupMenu的创建为:
public DropDownMenu(Context context, Button button, int menuId,
OnMenuItemClickListener listener) {
mButton = button;
mPopupMenu = new PopupMenu(context, mButton);
mMenu = mPopupMenu.getMenu();
mPopupMenu.getMenuInflater().inflate(menuId, mMenu);
mPopupMenu.setOnMenuItemClickListener(listener);
mButton.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
mPopupMenu.show();
}
});
}
public DropDownMenu addDropDownMenu(Button button, int menuId) {
DropDownMenu menu = new DropDownMenu(mContext, button, menuId, this);
mMenus.add(menu);
return menu;
}
在styles.xml我设置:
<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
<item name="popupMenuStyle">@style/PopupMenu</item>
<item name="textAppearanceLargePopupMenu">@style/PopupMenu.MenuItemText.Large</item>
<item name="textAppearanceSmallPopupMenu">@style/PopupMenu.MenuItemText.Small</item>
</style>
<style name="PopupMenu" parent="Widget.AppCompat.PopupMenu">
<item name="android:popupBackground">@color/anybill_blue</item>
</style>
我尝试运用各种样式和属性,但无论我做什么,我总是看到这一点:
如何摆脱那些荒谬的不正确的布局填充?我想这都是关于我错过了一些重要的风格属性。
不知道它是否重要,但是当我在API 19代码中没有AppCompat lib的情况下使用它时,样式工作正常。
更新:如果我使用android.support.v7.widget.PopupMenu,则样式如上所述。如果我使用android.widget.PopupMenu,然后应用无风格可言 - 它总是白色背景和黑色文字,但正确
显示
你找到这个问题的解决方案?我也有它.. – Sandra 2015-01-15 10:30:43
不幸的不是。我重新设计了UI以摆脱弹出式菜单 – 2015-01-15 11:24:49