有没有办法避免它?
如果我的文字是" Blablabla"并且它不适合广场,我不希望有类似的东西:
Blabla-
bla
我想要" Blablabla"字体较小的字体。有没有办法控制自动调整TextView是否会分割单词?
以下是该问题的一个示例:
最小文字大小为1sp
,因此很明显这个词可以适应缩小的文字大小。
答案 0 :(得分:3)
我过去实际上已经报告过此问题(here和here,您已经发现过),但是似乎有解决方案,或者至少看来为我工作。
我认为该提示可能会有所帮助:
这意味着您可以为textView选择中断策略。示例:
<TextView
android:layout_width="250dp" android:layout_height="wrap_content" android:background="#f00"
android:breakStrategy="balanced" android:hyphenationFrequency="none"
android:text="This is an example text" android:textSize="30dp" app:autoSizeTextType="uniform"/>
可悲的是,这似乎并不总是可以正常工作。我注意到,在希伯来语中,有时传播不佳:
https://issuetracker.google.com/issues/79936443
但是至少它不会无缘无故地散词。
使用此解决方案的主要缺点是,只能从API 23(根据Android dashboard statistics来看,至少有62%的设备)可用。有人要求它在支持库(here)中,但被告知这是不可能的。
答案 1 :(得分:1)
我遇到了同样的问题,发现了一个“不稳定”的工作。对我而言,它是有效的,因为我需要在textView中放入的文字只有一两个字......无论如何,我希望它有所帮助,或者至少它会给你一些灵感。 这就是我所做的:
在XML中我将android:maxLines="2"
添加到AppCompatTextView。
我检查了文本是否只有一个单词,如果是,则以编程方式设置textView.setMaxLines(1);
我理解这不是一个完美的解决方案,也不是一个通用的解决方
无论如何......如果你只需要使用android:maxLines="1"
正确地缩放“Blablabla”就行了。
答案 2 :(得分:0)
我在一个按钮上遇到了类似的问题,Android将文本“阅读列表”自动文本化为两行,分别是“阅读”和“ g列表”。
我能找到的唯一成功的解决方法是用换行符(“ \ n”)替换单词之间的空格。因此,字符串资源变为:
<string name="textButtonReadingLists">Reading\nlists</string>
不太理想,但是Android将“阅读”放在一行上,并将“列表”放在它的下面。希望对别人有帮助。
答案 3 :(得分:0)
我来这里时遇到的问题是两行文字与其他文字相同。唯一对我有用的是:https://github.com/AndroidDeveloperLB/AutoFitTextView
这不像在布局中添加几行那么方便,但是它可以在Android的自动尺寸不适合的情况下使用。