使用样式而不是android:textAppearance

时间:2018-05-30 21:47:40

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

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。

1 个答案:

答案 0 :(得分:1)

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

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

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

但是,如果您的应用程序风格高,并且您无论如何都会覆盖所有文本大小,则android:textAppearance的增值会减少。您当然可以在上面的帖子中使用它,但如果它不适合您的样式系统,那么请随意省略它。它只是帮助您在所有设备上获得漂亮应用的另一种工具。

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