【问题标题】:How to set bold title in Action Bar?如何在操作栏中设置粗体标题?
【发布时间】:2013-09-23 22:01:06
【问题描述】:

我正在编辑样式 xml,试图将 Activity 标题加粗。

<style name="MyTheme" parent="@android:style/Theme.Holo.Light">
    <item name="android:actionBarStyle">@style/MyActionBar</item>
</style>

<style name="MyActionBar" parent="@android:style/Widget.Holo.Light.ActionBar">
    <item name="android:background">#81CFEB</item>
    <item name="android:textStyle">bold</item>
</style>

但我只能设置所需的背景颜色。我不明白为什么 textStyle 没有设置为粗体。

有人知道怎么解决吗?

【问题讨论】:

    标签: android android-actionbar android-styles


    【解决方案1】:

    你能试试这个吗:

    <?xml version="1.0" encoding="utf-8"?>
    <resources>
      <style name="MyTheme" parent="@android:style/Theme.Holo.Light">
        <item name="android:actionBarStyle">@style/MyTheme.MyActionBar</item>
      </style>
    
      <style name="MyTheme.MyActionBar"parent="@android:style/Widget.Holo.Light.ActionBar">
        <item name="android:titleTextStyle">@style/MyTheme.MyActionBar.TitleTextStyle</item>
      </style>
    
      <style name="MyTheme.MyActionBar.TitleTextStyle" parent="@android:style/TextAppearance.Holo.Widget.ActionBar.Title">
        <item name="android:background">#81CFEB</item>
        <item name="android:textStyle">bold</item>
      </style>
    </resources>
    

    【讨论】:

      【解决方案2】:

      对于那些使用 AppCompat 的人,您需要这样的东西:

      <style name="MyTheme" parent="Theme.AppCompat">
          <item name="android:actionBarStyle">@style/MyTheme.ActionBar</item>
          <item name="actionBarStyle">@style/MyTheme.ActionBar</item>
      </style>
      
      <style name="MyTheme.ActionBar" parent="Widget.AppCompat.ActionBar.Solid">
          <item name="titleTextStyle">@style/MyTheme.ActionBar.TitleTextStyle</item>
      </style>
      
      <style name="MyTheme.ActionBar.TitleTextStyle" parent="TextAppearance.AppCompat">
          <item name="android:background">#81CFEB</item>
          <item name="android:textStyle">bold</item>
      </style>
      

      【讨论】:

      • 似乎不需要 MyTheme.ActionBar 中的第一项。
      • 我认为这可能是为了向后兼容@kbitzerCZ?
      • 我已经尝试将它留给 6.0.1 (API 23) 和 4.0.3 (API 15) 并且它有效(希望我没有遗漏什么)。
      • 嗯好吧,像primaryColor 这样的东西你有时需要像那样加倍。我已经根据你的测试删除了它
      【解决方案3】:
      if (Build.VERSION.SDK_INT >= 24) {
          getSupportActionBar().setTitle(Html.fromHtml("<b>" + title + "</b>", 0));
          }else {
          getSupportActionBar().setTitle(Html.fromHtml("<b>" + title + "</b>"));
          }
      

      【讨论】:

      • 虽然欢迎使用此代码 sn-p,并且可能会提供一些帮助,但它会是 greatly improved if it included an explanation of 如何解决这个问题。没有这个,你的回答就没有多少教育价值了——记住你是在为未来的读者回答这个问题,而不仅仅是现在提问的人!请edit您的答案添加解释,并说明适用的限制和假设。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-10-12
      • 2012-12-27
      • 1970-01-01
      • 2014-07-24
      • 2016-12-17
      • 2017-11-27
      • 1970-01-01
      相关资源
      最近更新 更多