您的位置:首页 > 其它

ActionBarSherlock: changing homeAsUpIndicator doesn't work

2015-02-21 21:15 453 查看
文章摘自stackoverflow上的一个帖子,解决了actionBar上换home图标左侧的“<”不起作用的问题。

原文如下:

Ask:

I'm want to change the up icon with applying the following style to my activity, but it doesn't work and but I still get the default black '<' icon.

Can anyone find out what is missing here?
<style name="AppTheme.ActionBar" parent="@style/Theme.Sherlock.Light">
<item name="actionBarStyle">@style/actionBarStyle</item>
<item name="android:actionBarStyle">@style/actionBarStyle</item>
</style>

<style name="actionBarStyle" parent="@style/Widget.Sherlock.Light.ActionBar.Solid">
<item name="android:background">@drawable/header_bar</item>
<item name="background">@drawable/header_bar</item>

<item name="android:homeAsUpIndicator">@drawable/up_indicator</item>
<item name="homeAsUpIndicator">@drawable/up_indicator</item>
<item name="android:displayOptions">homeAsUp|showHome</item>
<item name="displayOptions">homeAsUp|showHome</item>

</style>


Answer:
If I remember correctly, I
worked around this issue by moving you should move the
android:homeAsUpIndicator
and
homeAsUpIndicator
elements
into the main theme declaration. In other words, try:

<style name="AppTheme.ActionBar" parent="@style/Theme.Sherlock.Light">
<item name="actionBarStyle">@style/actionBarStyle</item>
<item name="android:actionBarStyle">@style/actionBarStyle</item>
<item name="android:homeAsUpIndicator">@drawable/up_indicator</item>
<item name="homeAsUpIndicator">@drawable/up_indicator</item>
</style>

<style name="actionBarStyle" parent="@style/Widget.Sherlock.Light.ActionBar.Solid">
<item name="android:background">@drawable/header_bar</item>
<item name="background">@drawable/header_bar</item>
<item name="android:displayOptions">homeAsUp|showHome</item>
<item name="displayOptions">homeAsUp|showHome</item>
</style>


Not sure whether I also had to move up the
displayOptions
,
but you may want to give that a go too in case above doesn't work right away.

By the way, I find naming a style
AppTheme.ActionBar
and
then inheriting from
Theme.Sherlock.Light
rather
confusing. If it were an ActionBar specific style, I would've expected something like
Widget.Holo.Light.ActionBar
(or
any of the other widget styles) as the parent. If it's your main theme, I'd name it accordingly. Up to you of course.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: