Android TextView compat自动调整大小,只缩小字体大小?

时间:2018-05-11 22:56:12

标签: android textview android-appcompat android-styles

多年来,我一直渴望Android TextViews具有iOS所具有的“缩小到适合”字体大小的功能,现在最终添加了自动调整功能,我发现它不仅仅是“缩小到适合”但它也“扩展到适合”,这实际上并非我所希望的。

我已经在我的TextView上设置了我喜欢的字体大小(虽然我没有直接使用内置样式),我唯一需要自动更改字体大小的时候是文本不能适合给定的内容空间,我需要缩小以适应。不幸的是,我得到的是我需要设置文本的情况,比方说,“肯尼”,而不是将它留在TextAppearance.Medium因为它适合给定的空间,它会把它吹成某种东西像60sp字体大小。非常荒谬。

1)有没有直接的方法来告诉自动调整“仅缩小”?我不这么认为,但如果我错过了,我很乐意帮助你纠正我。

2)假设#1没有选项,我认为我唯一的另一个选择是将autoSizeMaxTextSize设置为与textSize相同的值......但我尽量避免每个设置直接值。我尽可能地依靠TextAppearance.SmallTextAppearance.MediumTextAppearance.Large

那么,我如何引用textSize值并使用它来设置我的样式中的autoSizeMaxTextSize

<style name="Text.Large" parent="TextAppearance.AppCompat.Large">
    <item name="autoSizeTextType">uniform</item>
    <item name="autoSizeMaxTextSize">?????</item>
</style>

1 个答案:

答案 0 :(得分:-1)

您可以尝试将wrap_content设置为textView的宽度和高度,而不是在其xml中设置autoResize,稍后在java检查中查看是否textView宽度等于其父级(加上可能给出的边距和填充) - 意味着文本只能变小 - 如果是,则将autoResize设置为true