在Android的文档中,样式资源仅影响它应用的特定视图,而不影响其下的子视图。相比之下,主题(实际上只是在活动或应用程序级别应用的样式)会影响其域中的所有内容。到目前为止一切都很好。
我想知道的是,我是否可以应用一个主题'但仅适用于我的UI的特定部分。例如,我使用LinearLayout
作为一种特殊的Smart-Bar(将其视为一个美化的状态/工具栏),因此,我喜欢任何(大)子视图&&添加了#39;以使用tintColor
属性的特定值。 (所有子控件都具有通过getter / setter和关联属性定义的色调颜色。)
目前,这需要在添加时手动将tintColor
属性手动添加到所有子项。当有孙子参与时,事情变得更加复杂,这可能是包含布局等的一部分。
我希望简单的主题'这是基于LinearLayout的,但我没有看到任何方法来实现这一点。那可以吗?
答案 0 :(得分:1)
在父视图中使用android:theme
属性。
考虑这个示例布局:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:padding="16dp"
android:orientation="vertical">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="text 1"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="text 2"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="text 3"/>
</LinearLayout>
这会产生以下预览:
但是,如果我将android:theme="@style/BlueText"
添加到LinearLayout
,我现在会看到: