Toolbar popupmenu 样式设置

 

Toolbar menu 

  295人阅读  评论(0)  收藏  举报
  分类:
常见问题(19) 

1、改变更多icon的颜色为白色:

[html]  view plain  copy
 
  1. xml version="1.0" encoding="utf-8"?>  
  2. <android.support.v7.widget.Toolbar xmlns:android="http://schemas.android.com/apk/res/android"  
  3.     xmlns:app="http://schemas.android.com/apk/res-auto"  
  4.     android:id="@+id/toobar"  
  5.     android:layout_width="match_parent"  
  6.     android:layout_height="?attr/actionBarSize"  
  7.     android:background="?attr/colorPrimary"  
  8.     android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"  
  9.     app:popupTheme="@style/ThemeOverlay.AppCompat.Light"/>  

设置theme为这个即可。

2、toolbar 设置返回箭头:

[java]  view plain  copy
 
  1. getSupportActionBar().setDisplayHomeAsUpEnabled(true);  

3、toolbar 返回箭头监听:

[java]  view plain  copy
 
  1. toolbar.setNavigationOnClickListener(new View.OnClickListener() {  
  2.            @Override  
  3.            public void onClick(View v) {  
  4.                finish();  
  5.            }  
  6.        });  


设置menu的位置:

style.xml

[html]  view plain  copy
 
  1. <style name="OverflowMenuStyle" parent="@style/Widget.AppCompat.PopupMenu.Overflow">  
  2.           
  3.         <item name="overlapAnchor">falseitem>  
  4.         <item name="android:dropDownWidth">wrap_contentitem>  
  5.         <item name="android:paddingRight">5dpitem>  
  6.           
  7.         <item name="android:popupBackground">@android:color/whiteitem>  
  8.           
  9.         <item name="android:dropDownVerticalOffset">5dpitem>  
  10.           
  11.         <item name="android:dropDownHorizontalOffset">0dpitem>  
  12.           
  13.         <item name="android:textColor">@android:color/blackitem>  
  14.         <item name="android:gradientRadius">15dpitem>  
  15.         <item name="android:radius">50dpitem>  
  16.   
  17.     style>  
[html]  view plain  copy
 
  1.   
  2.    <style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">  
  3.          
  4.        <item name="colorPrimary">@color/colorPrimaryitem>  
  5.        <item name="colorPrimaryDark">@color/colorPrimaryDarkitem>  
  6.        <item name="colorAccent">@color/colorAccentitem>  
  7.          
  8.        <item name="actionOverflowMenuStyle">@style/OverflowMenuStyleitem>  
  9.    style>  
toolbar:

[html]  view plain  copy
 
  1. <android.support.v7.widget.Toolbar  
  2.         android:id="@+id/toolbar"  
  3.         android:minHeight="?attr/actionBarSize"  
  4.         android:layout_width="match_parent"  
  5.         android:layout_height="wrap_content"  
  6.         app:titleTextColor="@android:color/white"  
  7.         android:background="?attr/colorPrimary"  
  8.         android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"  
  9.         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);
}
将上面部分的代码复制到工程中,即可解决问题.

你可能感兴趣的:(android,toolbar)