【问题标题】:ActionBar custom title as ImaveView instead of TextViewActionBar 自定义标题为 ImaveView 而不是 TextView
【发布时间】:2012-05-10 14:47:53
【问题描述】:

我试图在操作栏上解决这个问题,但从我可以看到的标题基本上是一个 TextView,但我需要放置一个图像而不是纯文本。我尝试将其设置为 Style Themes.xml,如下所示:

<item name="android:actionBarStyle">@style/MyActionBar</item>

然后我定义了这种风格

 <style name="MyActionBar" parent="@android:style/Widget.Holo.Light.ActionBar">
    <item name="android:background">@drawable/action_background</item>
    <item name="android:titleTextStyle">@style/ActionbarTitleStyle</item>
</style>

我认为我可以定义标题的背景,但即使我这样做不是我想要的,请尝试 getActionBar().setCustomView(layout);但是在调用 setContentView 之前我的操作栏为空,我需要在 Base 类中使用它。

PD。我只需要关心 HONEYCOMB 和更高版本,所以请不要建议 Sherlock 或 Jonhanilson 实现。

【问题讨论】:

    标签: android customization android-actionbar


    【解决方案1】:

    如果你想要一张图片,你可以指定应用程序的标志和图标(它将被用来代替图标):

    <application
        android:icon="@drawable/ic_launcher"
        android:logo="@drawable/logo"
        android:label="@string/app_name"
        android:name=".AppName"
        >
    

    现在您有了任意图像,而不是启动器图标。您接下来需要做的是摆脱文本。在您的样式中执行以下操作:

    <style name="Widget.Styled.ActionBar" parent="Widget.Sherlock.ActionBar">
        <item name="titleTextStyle">@style/NoTitleText</item>
        <item name="android:titleTextStyle">@style/NoTitleText</item>
        <item name="subtitleTextStyle">@style/NoTitleText</item>
        <item name="android:subtitleTextStyle">@style/NoTitleText</item>     
    </style>
    
    <style name="NoTitleText">
        <item name="android:textSize">0sp</item>
        <item name="android:textColor">#00000000</item>
    </style>
    

    如果我没记错的话,如果你使用 ActionBarSherlock,你应该同时使用 item name="titleTextStyle"item name="android:titleTextStyle"

    【讨论】:

      【解决方案2】:

      像这样覆盖 setContentView:

      @Override
      public void setContentView(int resLayoutId) {
          super.setContentView(resLayoutId);
          // TODO Set your actionbar changes here
      }
      

      或者,您可以这样做:

      <style name="MyActionBar" parent="@android:style/Widget.Holo.Light.ActionBar">
          <item name="android:background">@drawable/action_background</item>
          <item name="android:titleTextStyle">@style/ActionbarTitleStyle</item>
          <item name="android:displayOptions">showCustom</item>
          <item name="android:customNavigationLayout">@layout/custom_nav_layout</item>
      </style>
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2013-10-10
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-03-11
        • 1970-01-01
        相关资源
        最近更新 更多