0
据我所知,保留原生外观是Android上的推荐做法,但我不禁注意到编译的默认组件在Jellybean上不显示为Holo。这是否意味着我们必须在版本11文件夹styles.xml中指定Holo并在其他地方默认?指定自定义主题以实现本机体验似乎有违直觉。使用Android主题处理版本的常见做法
据我所知,保留原生外观是Android上的推荐做法,但我不禁注意到编译的默认组件在Jellybean上不显示为Holo。这是否意味着我们必须在版本11文件夹styles.xml中指定Holo并在其他地方默认?指定自定义主题以实现本机体验似乎有违直觉。使用Android主题处理版本的常见做法
编码多个平台版本时,您确实需要指定一个主题。
在res/values/styles.xml
,你应该是这样的:
<resources>
<style name="AppTheme" parent="@android:style/Theme.Black" />
</resources>
然后在res/values-v11/styles.xml
<resources>
<style name="AppTheme" parent="@android:style/Theme.Holo" />
</resources>
然后在你的AndroidManifest.xml中,你应该指定主题为:
android:theme="@style/AppTheme"
但是,如果你根本没有指定任何主题(所以没有android:theme
属性),Android应该自动转到设备的默认主题。
感谢A C“编写多个应用程序版本”我假设您的意思是Android设备的版本。如果是这种情况,为什么我需要指定2个不同的主题(只是没有像你提到的所有情况一样指定) –
@Mike感谢你捕捉错误!通常你会这样做,如果你是自定义你的主题。例如,如果你想要一个轻量级的主题,设备的默认设置可能不会很轻,所以你需要一种方法来确保。 –