style和android有什么区别:主题属性?

Vai*_*ana 12 android

什么是之间的主要区别android:themestyle属性用于类似的看法buttons,并textviews在Android的布局XML文件?

怎么用?

什么时候用哪个?

Ben*_* P. 21

有两个主要区别:

首先,分配给视图的属性style将仅应用于该视图,而分配给它的属性android:theme将应用于该视图及其所有子视图.例如,考虑以下样式资源:

<style name="my_background">
    <item name="android:background">@drawable/gradient</item>
</style>
Run Code Online (Sandbox Code Playgroud)

如果我们通过使用将它应用于LinearLayout有三个孩子TextViewstyle="@style/my_background",则线性布局将使用渐变背景绘制,但是文本视图的背景将保持不变.

相反,我们将它应用于LinearLayout使用android:theme="@style/my_background"然后线性布局,并且三个文本视图中的每一个都将使用渐变作为其背景.

第二个关键区别是,如果在视图的主题中定义了视图,则某些属性仅影响视图.例如,考虑以下样式资源:

<style name="checkboxes">
    <item name="colorAccent">#caf</item>
    <item name="colorControlNormal">#caf</item>
</style>
Run Code Online (Sandbox Code Playgroud)

如果我将其应用于CheckBox使用style="@style/checkboxes",则不会发生任何事情.相反android:theme="@style/checkboxes",如果我使用它,复选框的颜色将会改变.

就像第一条规则所说的那样,包含主题属性的样式将应用于具有该android:theme属性的视图的所有子项.因此,我可以通过应用于linearlayout来更改线性布局中所有复选框的颜色android:theme="@style/checkboxes".

  • 有趣。以及您如何知道哪些属性仅在主题而不是样式中使用时才影响视图?某处有清单吗? (4认同)