【问题标题】:Using style instead of android:textAppearance使用样式而不是 android:textAppearance
【发布时间】:2018-11-09 20:18:36
【问题描述】:

android:textAppearance 允许您为文本视图上的某些属性应用额外的样式层。我想知道这个功能的灵活性是否超过了它的复杂性。

  • 是否出于任何技术或视觉原因需要android:textAppearance
  • 在整个项目中仅依赖 style 而在布局中省略使用 android:textAppearance 可能会产生什么后果?
  • 如果样式中也省略了它怎么办?

这里有两个指南推荐使用android:textAppearance

Styling Views on Android (Without Going Crazy)

TextAppearance 允许您将两种样式合并为一些最 常用修改的文本属性。看看你所有的风格:如何 他们中的许多人只修改文本的外观?在这些情况下,您可以 而只是修改 TextAppearance。

Best practices for happy Android resources

为确保 TextView 的外观一致,请勿在普通样式中定义任何 TextAppearance 属性,但始终在该样式的 android:textAppearance 字段上从您的库中设置 TextAppearance。

【问题讨论】:

  • 从未使用过android:textAppearance:,我还活着 :) 总是使用总线样式
  • android:textAppearance 如果您需要将其设为预定义样式,则会减少您的代码。否则,请根据需要随意使用样式..

标签: android android-layout android-theme android-styles android-textattributes


【解决方案1】:

查看TextView.java,似乎没有任何由android:textAppearance 定义的属性无法直接在TextView 上设置。因此,似乎没有任何技术原因需要使用它们来直接定义样式中的属性,至少在配置TextView 外观的能力方面。

这意味着您可以避免在布局和样式中使用它而不会产生任何不利影响,前提是您覆盖所有相关属性。基本主题为各种小部件定义了许多不同的标准android:textAppearances,因此您应该检查所有小部件是否都已正确覆盖。

根据我的经验,如果您希望您的应用看起来可以集成到设备的其余部分,android:textAppearance 最有用。所以如果你需要大文本,你可以使用android:textAppearance="?android:attr/textAppearanceLarge",现在你的文本是大的!无需知道对于给定的设备/屏幕尺寸/等意味着多少 sp

但是,如果您的应用具有高度的样式,并且无论如何您都将覆盖所有文本大小,那么 android:textAppearance 的附加值就会​​降低。您当然可以按照上面帖子中的说明使用它,但如果这不适合您的样式系统,请随意省略它。它只是帮助您在所有设备上获得美观应用的另一种工具。

如果您选择不使用应用程序,我还建议您额外确保在各种设备上试用您的应用程序,以确保您没有忽略覆盖默认的android:textAppearance

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-12-22
    • 1970-01-01
    • 2017-11-17
    • 2018-09-10
    • 2017-07-02
    • 2011-10-01
    • 1970-01-01
    相关资源
    最近更新 更多