【问题标题】:How does android populate stylable members of a View when not all are supplied in custom style当并非所有都以自定义样式提供时,android如何填充视图的可样式化成员
【发布时间】:2015-12-23 05:42:13
【问题描述】:

我有一个关于将样式/主题应用于实际对象的基本问题。

首先来自android文档Link here

主题是应用于整个 Activity 或应用程序的样式, 而不是单个视图(如上例所示)。当一种风格 作为主题应用,Activity 或应用程序中的每个 View 都会 应用它支持的每个样式属性。

来自同一篇文章

但是,如果您将样式应用于不支持所有 样式属性,视图将只应用那些属性 支持,而忽略其他的。

假设我在应用程序元素的 android 清单文件中使用平台的本机主题。

android:Theme.Holo.Light

因此,每个文档的所有活动/应用程序中的每个视图都将应用上述主题的样式属性。

假设我在整个应用程序中只有一种自定义样式,并且我在按钮上使用了它。

 <style name="RedColor">
        <item name="android:textColor">#FF0000</item>
    </style>


<Button
    style="@style/RedColor"
    android:text="@string/hello" />

所以应用程序中的所有视图都将应用主样式/主题android:Theme.Holo.Light

但一个视图(按钮)应用了我的自定义样式,称为 RedColor。 在 RedColor 样式中,我没有为按钮指定任何其他属性,也没有故意继承任何其他样式。

文档说视图将只应用那些属性 支持,而忽略其他的。

问题是当这个特定的视图(Button)变成一个实际的对象,当然 Button 的成员不止 textColor ,android如何填充这个 Button 或 View 的剩余属性?

【问题讨论】:

  • 剩余属性如?

标签: android


【解决方案1】:

如果我没记错的话,

首先根据您的问题,按钮将应用到活动的默认主题。之后,当 Button 膨胀以显示在 Activity 内时,它将查看按钮属性并应用于适用于 Button 的按钮>.

【讨论】:

  • 您是否建议应用两种样式?我对此表示怀疑,您是否有参考支持它?
  • @Ahmed 但是,它并没有写到按钮只会应用我们设置的自定义样式。
  • 嗯,这就是为什么我发布这个问题的原因,我认为有太多的困惑,我想要令人信服的信息而不仅仅是猜测
  • @Ahmed 基本上,活动内部的所有视图都是Theme 提供的类型,这里根据示例,仅 textColor 将被覆盖并从样式设置。不要混淆风格和主题是不同的东西。
猜你喜欢
  • 1970-01-01
  • 2017-06-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多