使用样式而不是 android:textAppearance

Using style instead of android:textAppearance

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

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

Styling Views on Android (Without Going Crazy)

TextAppearance allows you to merge two styles for some of the most commonly modified text attributes. Take a look at all your styles: how many of them only modify how the text looks? In those cases, you could instead just modify the TextAppearance.

Best practices for happy Android resources

To ensure consistent-looking TextViews, do not define any of the TextAppearance attributes in a normal style, but always set a TextAppearance from your library on that style’s android:textAppearance field.

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

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

根据我的经验,如果您希望您的应用看起来与设备的其余部分融为一体,android:textAppearance 是最有用的。所以如果你需要大文本,你可以使用 android:textAppearance="?android:attr/textAppearanceLarge" 现在你的文本很大了!无需知道给定的 device/screen size/etc..

意味着多少 sp

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

如果您选择不使用您的应用程序,我还建议您格外确保在各种设备上试用它,只是为了确保您没有忽略覆盖默认值 android:textAppearance .