我已经创建了一个菜单项。
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<item
android:id="@+id/syncButton"
android:title="Sync"
android:icon="@drawable/ic_sub_menu"
app:showAsAction="never"/>
</menu>
此功能用于我在工具栏中的某些活动,当单击它会下拉菜单,当前只有一个选项,但将来可能会更多。
除图标外,其他所有功能均正常运行,它是传统的3个白色点的矢量图像。取决于设置的showAsAction”,因为它会更改颜色。
当前将showAsAction设置为never,因此单击时会显示菜单,这是我想要的,但是图标变为深灰色。如果我将此选项设置为“ always”(始终),则图标将变为白色,但会丢失下拉菜单。
如何在保持图标为白色的同时保持下拉菜单?
答案 0 :(得分:3)
尝试使用此代码
@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater menuInflater) {
menuInflater.inflate(R.menu.menu_confirm, menu);
MenuItem action_done = menu.findItem(R.id.action_done);
action_done.setIcon(R.drawable.ic_filter);
menuIconColor(action_done, Color.WHITE);
super.onCreateOptionsMenu(menu, menuInflater);
}
public void menuIconColor(MenuItem menuItem, int color) {
Drawable drawable = menuItem.getIcon();
if (drawable != null) {
drawable.mutate();
drawable.setColorFilter(color, PorterDuff.Mode.SRC_ATOP);
}
}
答案 1 :(得分:1)
如果只想更改DropDownMenu的3点图标,则可以在Styles.xml中进行更改:
在主题样式中定义
<item name="android:actionOverflowButtonStyle">@style/MyTheme.OverFlow</item>
,然后用您要显示的图标定义溢出,而不是3DotsIcon(在您的情况下为带有3个白点的图标)
<style name="MyTheme.OverFlow">
<item name="android:src">@drawable/yourNewIcon</item>
</style>