【发布时间】:2010-10-23 06:09:36
【问题描述】:
我正在尝试研究如何组织一个具有多个主题的 android 应用程序。这是我的问题的简化示例,
2 个主题,“光明”和“黑暗”,
在每个主题中,两种文本颜色:“启用”和“禁用”
现在的问题是,当我定义我的 TextView 时,我不想在那里调出“浅色”或“深色”,我只想在应用程序级别指定主题并应用它。基本上,我想要 CSS 选择器。我希望能够定义我的主题,例如,
<style name="Light.enabled" .../>
<style name="Light.disabled" .../>
和我的文本视图一样,
<TextView style="@style/.enabled" .../>
<TextView style="@style/.disabled" .../>
并根据我在应用程序级别调用“light”还是“dark”来应用“启用”或“禁用”。
这个页面, http://www.androidengineer.com/2010/06/using-themes-in-android-applications.html
显示一个应用程序
-
定义一种风格,比如“light.enabled”
#000000
-
定义一个属性引用,比如“启用”
-
定义一个样式(主题)项目,例如,
@style/light.enabled
-
使用 attr 定义视图中的样式,
这是我想要的,但它对我不起作用。唯一的区别是我正在使用一个 appwidget。作者设定了活动的主题。我唯一可以设置它的地方是 Context.setTheme(),并且在清单中的“应用程序”标记处。这两者似乎都没有什么不同。
【问题讨论】:
-
我发现了一些页面,例如这个,androidengineer.com/2010/06/…,这意味着您可以从一个项目中引用其他样式,但编辑器抱怨它希望项目名称是一个定义明确的 android属性(例如,android:textColor)。