当我们有一个包含特定大小文本的 TextView
时,似乎如果我们向封闭布局添加填充,那么文本就会环绕以保持相同的字体大小。
但这是否意味着设置特定的字体大小可能会导致不同屏幕尺寸等问题?
因为我期望即使字体大小受到影响,文本也会以某种方式“调整大小”以保持一行。此外,如果我的文本有更多字符,该行似乎也会环绕并弄乱我的布局。
如果显示的字符更多,我怎么能使用字体而不弄乱我的布局?
更新:
基本上我的问题是,我们如何处理可以采用任意长度的字符串并适当使用字体的 TextViews
?
最佳答案
一般来说,我发现将 layout_width
和/或 layout_height
设置为 wrap_content
可以满足我的大部分需求。但是,在某些情况下,文本长度可能会变得太长。在这种情况下,人们会使用几种不同的策略。您选择的那个取决于您的布局和您想要实现的目标。
动态调整文本大小
您在问题中提到了字体大小,所以我将首先介绍它。您可以使用不同的值或 dimensions更改不同设备尺寸和方向的字体大小。
- Font size of TextView in Android application changes on changing font size from native settings
- Text size and different android screen sizes
- How to set text size of textview dynamically for different screens
不过,这样做并不一定会使字体适合 TextView。所以有些人尝试以编程方式调整字体大小。这似乎不是 Android 中非常主流的解决方案,但这里有一个讨论:
- Auto Scale TextView Text to Fit within Bounds
- Auto-fit TextView for Android
- How to adjust text font size to fit textview
截断文本
如果文本太长而不适合 TextView 的布局,并且没有必要看到整个内容,您可以在最后将其剪掉。您还可以使用 android:ellipsize
进行多种选择。阅读这些以获取更多详细信息:
- Android: TextView automatically truncate and replace last 3 char of String
- Android: Something better than android:ellipsize="end" to add "..." to truncated long Strings?
- TextView: Get it to truncate without respect to spaces between words
使用 ScrollView
当我有一个可能包含大量文本的 TextView 时,我通常将其放在 ScrollView 中。有关详细信息,请参阅此答案:
关于java - 我们如何正确使用 TextView 和字体?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29207673/