我的菜单项变为红色,10sp,背景为白色,但textStyle
粗体不起作用。这是为什么?
styles.xml
<style name="toolbarMenuTheme">
<item name="android:colorBackground">@color/white</item>
<item name="android:textColor">@color/red</item>
<item name="android:textSize">10sp</item>
<item name="android:textStyle">bold</item>
</style>
我布局中的摘录。
<android.support.v7.widget.Toolbar xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="48dp"
android:layout_marginTop="-5dp"
android:background="@color/white"
android:theme="@style/toolbarMenuTheme"/>
我夸大了布局。
<item
android:id="@+id/web_view_reload"
android:icon="@drawable/replay"
android:title="Reload"
app:showAsAction="always"/>
<item
android:id="@+id/web_view_action"
android:icon="@drawable/stack_icon_on"
android:title="Stack"
app:showAsAction="always"/>
<item
android:id="@+id/web_view_screenshot"
android:icon="@drawable/screenshot"
android:title="Screenshot"
app:showAsAction="always"/>
<item
android:id="@+id/web_view_share"
android:title="SHARE WEBSITE"/>
<item
android:id="@+id/web_view_copy_url"
android:title="Copy URL"/>
在java中通过以下方式充气:
Toolbar toolbar = (Toolbar) view.findViewById(R.id.toolbar);
toolbar.setNavigationIcon(R.drawable.x);
toolbar.inflateMenu(R.menu.web_view_toolbar_menu);
设置点击监听器:
toolbar.setOnMenuItemClickListener(new Toolbar.OnMenuItemClickListener() {
@Override
public boolean onMenuItemClick(MenuItem item) {
....
}
}
评论后修改
这是我的完整styles.xml
Styles.xml
<?xml version="1.0" encoding="utf-8"?>
<resources>
<style name="CustomUITheme" parent="@style/Theme.AppCompat.Light.NoActionBar">
<item name="android:windowNoTitle">true</item>
<item name="android:windowActionBar">false</item>
<item name="windowActionBar">false</item>
<item name="android:windowBackground">@color/milky</item>
<!--item name="android:textSelectHandle">@drawable/text_select_handle_middle</item>
<item name="android:textSelectHandleLeft">@drawable/text_select_handle_left</item>
<item name="android:textSelectHandleRight">@drawable/text_select_handle_right</item-->
<item name="colorPrimary">@color/toolbar_bg</item>
<item name="colorPrimaryDark">#ff404040</item>
<item name="colorAccent">@color/accent</item>
<item name="android:textColorHighlight">@color/text_highlight</item>
<!--item name="alertDialogTheme">@style/AppCompatAlertDialogStyle</item-->
</style>
<style name="toolbarMenuTheme" parent="TextAppearance.Widget.AppCompat.Toolbar.Title">
<item name="android:colorBackground">@color/white</item>
<item name="android:textColor">@color/red</item>
<item name="android:textSize">10sp</item>
<item name="android:textStyle">bold</item>
</style>
<style name="AppCompatAlertDialogStyle" parent="Theme.AppCompat.Light.Dialog.Alert">
<item name="android:background">#FFFFFF</item>
<item name="android:windowNoTitle">true</item>
</style>
<!--style name="CustomActionBar"
parent="@android:style/Widget.Holo.Light.ActionBar.Solid.Inverse">
<item name="android:background">@color/toolbar_bg</item>
</style-->
<style name="captionOnly">
<item name="android:background">@null</item>
<item name="android:clickable">false</item>
<item name="android:focusable">false</item>
<item name="android:minHeight">0dp</item>
<item name="android:minWidth">0dp</item>
</style>
<!-- FAB -->
<style name="FloatingActionButton" parent="android:Widget.ImageButton">
<item name="floatingActionButtonSize">normal</item>
</style>
<!-- empty states -->
<style name="empty_title">
<item name="android:textSize">10dp</item>
</style>
<style name="empty_details">
<item name="android:textColor">#999999</item>
<item name="android:textSize">8dp</item>
</style>
</resources>
答案 0 :(得分:10)
在styles.xml
文件中添加以下内容
<style name="ActionBar.nameText" parent="TextAppearance.AppCompat.Widget.ActionBar.Title">
<item name="android:textColor">@color/PrimaryTextColor</item>
<item name="android:textSize">18sp</item>
<item name="android:textStyle">bold</item>
</style>
在您的情况下,样式名称和父级可能会有所不同,但请采用粗体的概念
修改强>
在toolbar.xml
<android.support.v7.widget.Toolbar
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:companyApp="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="?actionBarSize"
companyApp:theme="@style/ActionBarThemeOverlay"
companyApp:titleTextAppearance="@style/ActionBar.nameText">
</android.support.v7.widget.Toolbar>
在你的styles.xml中
<style name="ActionBarThemeOverlay" parent="">
<item name="android:textColorPrimary">@color/PrimaryTextColor</item>
<item name="colorControlHighlight">@color/BackgroundColor</item>
<item name="android:actionMenuTextColor">@color/PrimaryTextColor</item>
<item name="android:textColorSecondary">@color/PrimaryTextColor</item>
<item name="android:background">@color/PrimaryBackgroundColor</item>
</style>
在androidmanifest.xml中
<application
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@android:style/Your Theme">
答案 1 :(得分:4)
为什么不尝试这个
此外,您可以设置文本部分粗体
getSupportActionBar().setDisplayShowTitleEnabled(true);
SpannableStringBuilder str = new SpannableStringBuilder("HelloWorld");
str.setSpan(new android.text.style.StyleSpan(android.graphics.Typeface.BOLD), 5, 10,Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
getSupportActionBar().setTitle(str);
输出为Hello World
如果您希望整个文字都是粗体,请使用此
str.setSpan(new android.text.style.StyleSpan(android.graphics.Typeface.BOLD), 0, 10,Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
输出将是 HelloWorld
答案 2 :(得分:3)
您可以在activity.java中尝试此操作,以使折叠标题 BOLD
final CollapsingToolbarLayout collapsingToolbarLayout = (CollapsingToolbarLayout) findViewById(R.id.collapsing_container);
collapsingToolbarLayout.setCollapsedTitleTypeface(Typeface.DEFAULT_BOLD);
答案 3 :(得分:0)
工具栏
<android.support.v7.widget.Toolbar xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="48dp"
android:layout_marginTop="-5dp"
android:background="@color/white"
android:theme="@style/toolbarMenuTheme"
app:titleTextAppearance="@style/Toolbar.TitleText" />
在Style.xml中
<style name="Toolbar.TitleText" parent="TextAppearance.Widget.AppCompat.Toolbar.Title">
<item name="android:textStyle">bold</item>
</style>
用于弹出菜单
<style name="myPopupMenuTextAppearanceLarge" parent="@android:style/TextAppearance.DeviceDefault.Widget.PopupMenu.Large">
<item name="android:textColor">@color/color_dark_grey</item>
<item name="android:textStyle">bold</item>
</style>
答案 4 :(得分:0)
对我有用
SpannableStringBuilder str = new SpannableStringBuilder(“ Prime”); str.setSpan(new android.text.style.StyleSpan(Typeface.ITALIC), 0, str.length(),Spannable.SPAN_USER);
str.setSpan(new android.text.style.ForegroundColorSpan(Color.parseColor(“#FFD700”)),0,str.length(),Spannable.SPAN_USER);
mActionBar.setSubtitle(str);
答案 5 :(得分:0)
菜单项和PopuOverlay的样式如下
<style name="AppTheme.PopupOverlay" parent="ThemeOverlay.AppCompat.Light" >
<item name="android:textColor">#d22323</item>
<item name="android:textStyle">bold</item>
</style>
标题下方
<style name="ActionBar.nameText" parent="TextAppearance.AppCompat.Widget.ActionBar.Title">
<item name="android:textColor">@color/colorPrimaryDark</item>
<item name="android:textStyle">bold</item>
</style>
现在将主题添加到工具栏
<androidx.appcompat.widget.Toolbar
android:id="@+id/toolbar"
app:title="title here"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:background="?attr/colorPrimary"
android:theme="@style/AppTheme.PopupOverlay"
app:titleTextAppearance="@style/ActionBar.nameText"
app:popupTheme="@style/AppTheme.PopupOverlay" />