Android自定义工具栏菜单项标题颜色和样式

时间:2015-07-30 07:07:40

标签: android customization android-toolbar

我正在绘制一个自定义工具栏,需要显示在屏幕底部,即它不是操作栏。

现在,我有一个工具栏和一个自定义菜单。

menu.xml文件

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"
      xmlns:app="http://schemas.android.com/apk/res-auto">
    <item 
          android:title="@string/get_directions"
          app:showAsAction="always|withText"
          android:icon="@drawable/navigation_icon/>
</menu>

线性布局内的工具栏布局。

<android.support.v7.widget.Toolbar
        android:id="@+id/toolbar_options"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center_horizontal"/>

我使用toolbar.inflatemenu()来膨胀上面的菜单。现在,我想自定义菜单项标题的外观(如颜色,字体等)。有没有办法做到这一点,除了在menuitem中使用actionlayout?

请注意,它不是“动作栏”。我在互联网上找到的所有解决方案都是针对行动吧。请为独立工具栏提出建议。

2 个答案:

答案 0 :(得分:2)

在themes.xml或style.xml中创建新样式

<style name="ToolbarStyle" parent="Theme.AppCompat.Light.DarkActionBar">
         ...
    <item name="actionMenuTextColor">@color/your_color</item>
         ...
 </style>

现在将样式应用于工具栏

<android.support.v7.widget.Toolbar
        android:id="@+id/toolbar_options"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center_horizontal"
        android:theme="@style/ToolbarStyle"
/>

答案 1 :(得分:0)

造型对我不起作用,所以我用过:

public static void applyFontForToolbarTitle(Activity context){
    Toolbar toolbar = (Toolbar) context.findViewById(R.id.app_bar);
    for(int i = 0; i < toolbar.getChildCount(); i++){
        View view = toolbar.getChildAt(i);
        if(view instanceof TextView){
            TextView tv = (TextView) view;
            Typeface titleFont = Typeface.
               createFromAsset(context.getAssets(), "fonts/customFont");
            if(tv.getText().equals(context.getTitle())){
                tv.setTypeface(titleFont);
                break;
            }
        }
    }
}