Android:通过使用主题,我是否只有每个属性的镜头?在Android中没有什么比CSS更像了吗?

StackOverflow https://stackoverflow.com/questions/3751663

这里 他们写:

要将样式定义应用于主题,您必须将样式应用于Android清单中的活动或应用程序。当您这样做时,活动或应用程序中的每个视图都将应用其支持的每个属性。例如,如果将CodeFont样式从上一个示例应用于活动,则所有支持文本样式属性的视图元素都将应用它们。

因此,当我将TextColor设置为红色时,将所有带有文本更改为红色的元素进行重新处理?像CSS样式表中的功能强大的指定符?我只是看到了样式的概念(style="@style/CodeFont")可行。

有帮助吗?

解决方案

为了回应您的评论 textAppearance.

在此处打开主题。xml文件:
https://android.googlesource.com/platform/frameworks/base/+/froyo-release/core/core/res/res/res/values/themes.xml

如果您查找文本申请书,您会注意到各种条目,例如:

<style name="Theme">
    <item name="textAppearanceButton">@android:style/TextAppearance.Widget.Button</item>
    ...
    <item name="panelTextAppearance">?android:attr/textAppearanceInverse</item>
    ...

如Maragues示例所示,这使您可以在整个应用程序中进行样式组件。

因此,尽管不可能用listView,滚动视图等充分完全控制所有子元素的样式,但对于控制样式的某些基于文本的组件(例如TextView和Or按钮)的支持有限。

其他提示

如果您在您引用的文字下方阅读:

要为您的应用程序的所有活动设置主题

如果您只想将主题应用于应用程序中的一个活动,请添加Android:主题属性,而改为标签。

此后,它描述了如何继承和覆盖属性,就像CSS一样:

如果您喜欢主题,但想调整它,只需将主题添加为自定义主题的父母即可。例如,您可以修改传统对话框主题以使用自己的背景图像:

<style name="CustomTextView" parent="@android:style/Widget.TextView">
    <item name="android:background">@drawable/custom_background</item>
</style>

然后,从CustomTextView到Interit

<style name="CustomTextView.RedText">
   <item name="android:textColor">@color/red</item> 
</style>

设计XML布局后,您可以继承一个主题并覆盖属性

<TextView
    android:id="@+id/example"

    style="@style/CustomTextView.RedText"

    android:textColor="@color/green" />

我认为您应该再次阅读您链接的页面,这有很好的解释:)

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top