Android 自定义工具栏菜单项标题颜色和样式
Android custom toolbar menu item title color and style
我正在绘制一个需要显示在屏幕底部的自定义工具栏,即它不是操作栏。
现在,我有一个工具栏和一个自定义菜单。
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() 来扩充上面的菜单。现在,我想自定义菜单项标题的外观(如颜色、字体等)。除了在菜单项中使用 actionlayout 之外,还有什么办法可以做到这一点吗?
请注意,这不是 "action bar"。我在互联网上找到的所有解决方案都是针对操作栏的。请为独立工具栏提出建议。
在 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"
/>
样式不适合我,所以我使用了:
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;
}
}
}
}
我正在绘制一个需要显示在屏幕底部的自定义工具栏,即它不是操作栏。
现在,我有一个工具栏和一个自定义菜单。
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() 来扩充上面的菜单。现在,我想自定义菜单项标题的外观(如颜色、字体等)。除了在菜单项中使用 actionlayout 之外,还有什么办法可以做到这一点吗?
请注意,这不是 "action bar"。我在互联网上找到的所有解决方案都是针对操作栏的。请为独立工具栏提出建议。
在 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"
/>
样式不适合我,所以我使用了:
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;
}
}
}
}