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

Gen*_*nik 2 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>
Run Code Online (Sandbox Code Playgroud)

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>
Run Code Online (Sandbox Code Playgroud)

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>
Run Code Online (Sandbox Code Playgroud)

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

我在v-11模拟器上测试,我不得不在我的代码中添加这一行:

setTheme(R.style.Theme_Sherlock_Light);
Run Code Online (Sandbox Code Playgroud)

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

谢谢,亚历克斯

Bla*_*elt 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>
Run Code Online (Sandbox Code Playgroud)

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