android - ActionBar 自定义标题为 ImaveView 而不是 TextView

标签 android customization android-actionbar

我试图在操作栏上解决这个问题,但据我所见,标题基本上是一个 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 之前我的 actionbar 为空,我需要在基类中使用它。

PD。我只需要关心 HONEYCOMB 和 Higher,所以如果您不建议 Sherlock 或 Jonhanilson 实现。

最佳答案

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

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

现在你有一个任意的图像而不是你的 lanucher 图标。接下来需要做的是摆脱文本。在您的样式中执行以下操作:

<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"

关于android - ActionBar 自定义标题为 ImaveView 而不是 TextView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10536559/

相关文章:

java - 从操作栏按钮启动方法出错

java - Android:java.lang.IllegalArgumentException:错误对话线程 ID:15555215554

android - React Native - 这两个应用程序之间有什么区别,一个使用 `AppRegistry.registerComponent` 而另一个不使用?

android - 用于解锁 Android 设备屏幕的 ADB Key 事件 82 不适用于 KK 设备

ios - 如何知道 UIPanGestureRecognizer 是否来自一个显示边缘?

push-notification - Xamarin Android 使用 SetSound 作为通知 channel 在通知上播放自定义声音

mysql - 如何在redmine上更改自定义字段sql查询

android - setAction() 对 intent (Broadcast) 做了什么

android - 菜单项的自定义 View

android - 更改自定义操作栏标题