2

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

资源/值:

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

资源/价值-v11

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

资源/价值-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 中指定了主题,为什么我必须在代码中指定主题,我有点困惑。

谢谢,亚历克斯

4

2 回答 2

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存档

于 2013-06-21T10:23:56.587 回答
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>

在 v11 中

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

在 v14 中

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

在清单文件中,它将被声明为

android:theme="@style/ExampleTheme" >

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

于 2013-06-28T05:31:05.247 回答