Android - ActionbarSherlock样式配置应该是什么?

时间:2013-06-18 15:04:03

标签: android actionbarsherlock android-actionbar

我在这些文件夹中有3个styles.xml文件:

RES /值:

<style name="CustomTheme" parent="Theme.Sherlock.Light">
    <item name="android:windowBackground">@color/white</item>
    <item name="android:colorBackground">@color/white</item>
</style>

RES /值-V11

<style name="CustomTheme" parent="android:Theme.Holo.Light">
    <item name="android:windowBackground">@color/white</item>
    <item name="android:colorBackground">@color/white</item>
</style>

RES /值-V14

<style name="CustomTheme" parent="android:Theme.Holo.Light">
    <item name="android:windowBackground">@color/white</item>
    <item name="android:colorBackground">@color/white</item>
</style>

让v11和v14将Holo.Light作为配置是否正确?然后将Theme.Sherlock.Light作为默认值?

我在v-11模拟器上进行测试,我必须将此行添加到我的代码中:

setTheme(R.style.Theme_Sherlock_Light);

但我不确定它是否适用于所有必要的版本。这是正确的设置吗?或者我需要调整一些东西?我有点困惑,为什么我必须在代码中指定主题,如果它已经在xml中指定。

谢谢, 亚历

2 个答案:

答案 0 :(得分:6)

如果我没有误解你的怀疑:

Sherlock是旧版设备的Android ActionBar的一个端口。因此,如果您使用Sherlock,则可以为两者(旧设备和新设备)获得相同的android:Theme.Holo.Light样式。如果您想要在旧设备上应用样式,则必须删除android:前缀

通过这种方式,您可以获得与旧设备和新设备相同的外观

<style name="CustomTheme" parent="Theme.Sherlock.Light">
    <item name="android:windowBackground">@color/white</item>
    <item name="android:colorBackground">@color/white</item>
    <item name="windowBackground">@color/white</item>
    <item name="colorBackground">@color/white</item>
</style>

因此,您可以保留style文件,如果您需要在平板电脑和手机上进行不同的自定义,则可以自定义dimenscolors文件

答案 1 :(得分:1)

默认情况下,ActionBar Sherlock会像这样,并且与每个版本兼容。

在样式中:

  <style name="ExampleTheme" parent="Theme.Sherlock.Light.DarkActionBar">
    <item name="homeAsUpIndicator">@drawable/new_indicator</item>
    <item name="android:homeAsUpIndicator">@drawable/new_indicator</item>
</style>

在第11节

<style name="AppTheme" parent="android:Theme.Holo.Light" />

在第14节

<style name="AppTheme" parent="android:Theme.Holo.Light.DarkActionBar" />

并在清单文件中将其声明为

android:theme="@style/ExampleTheme" >

所以我可以说每个Android版本都默认采用值样式。无需关心v11和v14。