我正在尝试使用ActionBarSherlock library为主页图标设置自定义图标。我尝试在自定义主题中使用abHomeLayout
属性设置自定义布局。但它对我不起作用。唯一的方法,如何设置它,是为我的自定义drawble设置abIcon
属性,但我不能为这个drawable设置一些水平填充。是否有任何示例或abHomeLayout
属性存在问题?
答案 0 :(得分:40)
这适用于我的情况,它用我的自定义替换了操作栏中的默认ic_launcher图标。
在你的onCreate中执行此操作:
getSupportActionBar().setIcon(R.drawable.audio_shortcut);
或者在清单中,您可以设置徽标:
<activity>
android:logo="@drawable/my_custom_logo"
...
</activity>
答案 1 :(得分:5)
这也很有效:
<style name="Theme.Styled" parent="Theme.Sherlock.Light.DarkActionBar">
<item name="actionBarStyle">@style/Widget.Styled.ActionBar</item>
<item name="android:actionBarStyle">@style/Widget.Styled.ActionBar</item>
</style>
<style name="Widget.Styled.ActionBar" parent="Widget.Sherlock.Light.ActionBar.Solid.Inverse">
<item name="icon">@drawable/my_custom_logo</item>
<item name="android:icon">@drawable/my_custom_logo</item>
</style>
参考:How to change the ActionBar “Home” Icon to be something other than the app icon?
答案 2 :(得分:0)
我遇到类似问题,设备api&lt; 11上的主页图标填充不正确(即完全成熟的平台操作栏),而abHomeLayout
样式只能运行api&gt; 11
我的解决方案是将abs__action_bar_home.xml
布局从ABS复制到子项目,并手动将填充添加到abs__home
imageview
<ImageView
android:id="@+id/abs__home"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:paddingTop="@dimen/action_bar_home_icon_top_bottom_padding"
android:paddingBottom="@dimen/action_bar_home_icon_top_bottom_padding"
android:paddingLeft="@dimen/action_bar_home_icon_left_right_padding"
android:paddingRight="@dimen/action_bar_home_icon_left_right_padding"
android:scaleType="centerInside" />
答案 3 :(得分:-1)
定义自己的风格,如下所示:
<resources>
<style name="Theme.OwnTheme" parent="@style/Theme.Sherlock">
<item name="abBackground">#476dd5</item>
<item name="abHeight">30dip</item>
</style>
</resources>
我想在这里你可以使用abHomeLayout
。
为您的活动设置此样式,如下所示:
<activity
android:name=".MainActivity"
android:theme="@style/Theme.OwnTheme">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
在MainActivity中,您可以使用getSupportActionBar()... functions。