我在这些文件夹中有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中指定。
谢谢, 亚历
答案 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
文件,如果您需要在平板电脑和手机上进行不同的自定义,则可以自定义dimens
和colors
文件
答案 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。