1、改变更多icon的颜色为白色:
- <?xml version="1.0" encoding="utf-8"?>
- <android.support.v7.widget.Toolbar xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:app="http://schemas.android.com/apk/res-auto"
- android:id="@+id/toobar"
- android:layout_width="match_parent"
- android:layout_height="?attr/actionBarSize"
- android:background="?attr/colorPrimary"
- android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
- app:popupTheme="@style/ThemeOverlay.AppCompat.Light"/>
设置theme为这个即可。
2、toolbar 设置返回箭头:
- getSupportActionBar().setDisplayHomeAsUpEnabled(true);
3、toolbar 返回箭头监听:
- toolbar.setNavigationOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View v) {
- finish();
- }
- });
设置menu的位置:
style.xml
- <style name="OverflowMenuStyle" parent="@style/Widget.AppCompat.PopupMenu.Overflow">
-
- <item name="overlapAnchor">false</item>
- <item name="android:dropDownWidth">wrap_content</item>
- <item name="android:paddingRight">5dp</item>
-
- <item name="android:popupBackground">@android:color/white</item>
-
- <item name="android:dropDownVerticalOffset">5dp</item>
-
- <item name="android:dropDownHorizontalOffset">0dp</item>
-
- <item name="android:textColor">@android:color/black</item>
- <item name="android:gradientRadius">15dp</item>
- <item name="android:radius">50dp</item>
-
- </style>
-
- <style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
-
- <item name="colorPrimary">@color/colorPrimary</item>
- <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
- <item name="colorAccent">@color/colorAccent</item>
-
- <item name="actionOverflowMenuStyle">@style/OverflowMenuStyle</item>
- </style>
toolbar:
- <android.support.v7.widget.Toolbar
- android:id="@+id/toolbar"
- android:minHeight="?attr/actionBarSize"
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- app:titleTextColor="@android:color/white"
- android:background="?attr/colorPrimary"
- android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
- app:popupTheme="@style/OverflowMenuStyle">
转载于:http://blog.csdn.net/major_out/article/details/50933016
最近项目中需要使用到Toolbar,然后在使用optionMenu的时候,需要在选项中显示图标.但是在网上找了比较多的资料,都没有办法解决问题.最后在stackOverflow上找到了解决方案..所以这里班门弄斧一下.
解决方案的环境是: SDK version API 22,模拟器 genymotion.一个亲测可行的方案是在需要用到菜单的界面(即重写onCreateOptionsMenu这个方法的界面)重写下面这个方法.
@Override
public boolean onPrepareOptionsMenu(Menu menu) {
if(menu != null){
if(menu.getClass().getSimpleName().equals("MenuBuilder")){
try{
Method m = menu.getClass().getDeclaredMethod(
"setOptionalIconsVisible", Boolean.TYPE);
m.setAccessible(true);
m.invoke(menu, true);
}
catch(NoSuchMethodException e){}
catch(Exception e){}
}
}
return super.onPrepareOptionsMenu(menu);
}
将上面部分的代码复制到工程中,即可解决问题.