【发布时间】:2020-02-18 02:43:00
【问题描述】:
在我的布局中,我使用了 android:textAppearence 的预定义值。但是,正如我发现的那样,至少有两种方法可以定义它们,这会产生非常不同的结果(例如,不同的字体大小和 alpha 和 weight 值):
-
android:textAppearance:="@style/TextAppearance.MaterialComponents.Caption"。这个@style/...值在(在我的情况下)文件中定义~/.gradle/caches/transforms-2/files-2.1/11ab83d2971a1126be493aa33fdd0f6e/material-1.1.0/res/values。例如,这被定义为:<style name="TextAppearance.MaterialComponents.Caption" parent="TextAppearance.AppCompat.Caption"> <item name="fontFamily">sans-serif</item> <item name="android:fontFamily">sans-serif</item> <item name="android:textStyle">normal</item> <item name="android:textAllCaps">false</item> <item name="android:textSize">12sp</item> <item name="android:letterSpacing">0.0333333333</item> </style> -
android:textAppearance="@android:style/TextAppearance.Material.Menu"。这是定义在/home/rudra/.Android/Sdk/platforms/android-29/data/res/values/styles_material.xml。这被定义为:<style name="TextAppearance.Material.Menu"> <item name="textSize">@dimen/text_size_menu_material</item> <item name="fontFamily">@string/font_family_menu_material</item> </style>
对我来说主要问题是,我不确定使用哪一个来获得更一致的用户体验。我敢肯定,case 2 的文件不会随我的应用程序一起提供,但也许用户将拥有styles_material 用于他的 android-xx。但是通过了解material-1.0.0 和1.1.0 的值如何变化,我有点怀疑是否依赖这些值,但我不确定。
另一方面,为所有可能的场景重新定义textAppearance 是一项相当大的工作。
所以,我正在寻找有关如何定义 textAppearence 以及在 case 1 和 case 2 中的建议,我应该使用它来获得跨设备更一致的结果
【问题讨论】:
标签: android android-layout android-layoutparams