我有一个基于appcompat兼容库的应用程序。我的应用程序有一些自定义样式,例如 values / styles.xml 中的按钮,UI等。我有 values-11 / styles.xml值-16 / stylex.xml values-21 / styles.xml
我的问题是:我不想在每个styles.xml文件中重复自定义样式代码。我希望较新版本继承自主syles.xml并仅编写新样式,但此方法不起作用,我收到错误,说我没有为我的活动设置主题。
以下是我的风格: 值/ styles.xml:
<resources>
<style name="Holo.Demo" parent="Theme.AppCompat" />
<style name="Holo.Demo.Theme.Light.DarkActionBar" parent="Theme.AppCompat.Light.DarkActionBar">
<item name="mycustomstyle">@drawable/ic_menu_add_user_holo_light</item>
值-V11 / styles.xml:
<resources>
<style name="Holo.Demo.Theme.Light.DarkActionBar" parent="Holo.Demo.Theme.Light.DarkActionBar">
</style>
在我的andoirdmanifest文件中,我已将我的活动主题引用到
Holo.Demo.Theme.Light.DarkActionBar
答案 0 :(得分:3)
在Eclipse中创建新项目时,将在values / styles.xml中生成两个样式:
<!--
Base application theme, dependent on API level. This theme is replaced
by AppBaseTheme from res/values-vXX/styles.xml on newer devices.
-->
<style name="AppBaseTheme" parent="Theme.AppCompat.Light">
<!--
Theme customizations available in newer API levels can go in
res/values-vXX/styles.xml, while customizations related to
backward-compatibility can go here.
-->
</style>
<!-- Application theme. -->
<style name="AppTheme" parent="AppBaseTheme">
<!-- All customizations that are NOT specific to a particular API-level can go here. -->
</style>
for v11:
<!--
Base application theme for API 11+. This theme completely replaces
AppBaseTheme from res/values/styles.xml on API 11+ devices.
-->
<style name="AppBaseTheme" parent="Theme.AppCompat.Light">
<!-- API 11 theme customizations can go here. -->
</style>
和v14:
<!--
Base application theme for API 14+. This theme completely replaces
AppBaseTheme from BOTH res/values/styles.xml and
res/values-v11/styles.xml on API 14+ devices.
-->
<style name="AppBaseTheme" parent="Theme.AppCompat.Light.DarkActionBar">
<!-- API 14 theme customizations can go here. -->
</style>
整个应用程序的主题(xml中的标记):
android:theme="@style/AppTheme"
阅读评论,它们很有用。首先 - 无论如何你总是使用AppCompat。否则:第二 - 你可能在“全局”AppTheme中写了一些内容,让我们假设,样式按钮或textview,两者都存在于所有版本/ apis中。如果你想改变API 14中引入的smth,只需在v14风格的AppBASETheme中编写正确的行