我从查询数据库生成菜单的每个选项 . 这是我的代码 .
final PopupMenu popupMenu = new PopupMenu(getBaseContext(), v);
SQLiteDatabase db = AdapterDb.getReadableDatabase();
Cursor cursor = db.rawQuery(sql, null);
int ctritem = 0;
if (cursor.moveToFirst()) {
popupMenu.getMenu().add(Menu.NONE, ctritem, Menu.NONE, "ALL ITEMS");
do {
ctritem++;
popupMenu.getMenu().add(Menu.NONE, ctritem, Menu.NONE, cursor.getString(0));
} while (cursor.moveToNext());
}
一切都还可以,但问题是如何改变选项菜单的颜色或弹出菜单的背景颜色(从黑色到白色),是否可能?谢谢
11 回答
将popupMenu样式添加到您的AppTheme:
manifest.xml文件:
如果您使用的是AppCompact-v7,那么您可以按如下方式设置PopupMenu的样式:
注意:PopMenu始终使用活动上下文,而不是使用应用程序上下文 .
请在样式xml文件中添加以下行,希望这对材料设计应用有所帮助 . Style.xml
有关详细信息,请参阅此链接http://www.viralandroid.com/2016/01/how-to-change-background-and-text-color-of-android-actionbar-option-menu.html
如果您正在使用AppCompat主题,请使用
除此以外
首先在styles.xml文件中为弹出菜单背景定义你的风格,在我的情况下我使用这个...
在这里我想更改特定活动中的弹出菜单背景,因此应用主题(android:theme =“@ style / AppTheme”)与活动声明,它肯定有效 . 使用此代码创建弹出菜单的另一个重要事项PopupMenu popup = new PopupMenu(your activity,viewObj);
在您提供工具栏的布局中,通过app指定主题:popupTheme =“@ style / MyPopupMenu”
有关更多说明,请参阅How to style PopupMenu? . 我面临同样的问题,搜索了很多,但在提到的链接中找到了解决方案 .
PopupMenu按以下方式创建:
PopupMenu采用传递的上下文样式,传递Activity作为上下文解决了我的问题 .
将PopupMenu主题添加到AppTheme:
manifest.xml文件:
In Style Your Application Theme
For Text Appearence
And Use App Theme In Menifest like:
您可以使用这样的自定义布局..
你想要的设计布局..希望这有助于..