更改字体后TextView如何自适应文本大小

5

我有一个问题:

enter image description here enter image description here

好吧,文章中的可点击文本是ClickableSpans,点击时会改变颜色和字体。由于BOLD字体略宽,在行末的一些文字会移出屏幕。虽然可以横向滚动查看,但我仍希望被截断或隐藏的单词移到下一行。

这可能吗?我已经尝试了invalidate()、重新设置textview宽度等方法,但没有帮助。

谢谢!

4个回答

0

从用户体验角度来看,单击链接重新排列文本并不是一个好主意。因此,您应该考虑只更改文本的颜色而不是字体。

如果您仍然想继续,请在TextView上调用requestLayout(),然后紧接着调用invalidate()


不起作用,但你是对的,这是一个糟糕的设计想法。缩小粗体字可能不会有太大影响,或者干脆不使用粗体... - myro
看看调用requestLayout和invalidate是否有帮助。这就是TextView源代码中所做的。 - Ron

0

如果您在Layout中使用TextView,请在Layout标记中用dip硬编码layout_width,并将layout_weight=1应用于TextView标记。

注意:上述过程仅适用于您的应用程序可以在竖屏模式下使用的情况。


0

你可以尝试的另一件事是调用textView.requestLayout()


0

你的问题可能有几种解决方案。

尝试在你的TextView中使用以下任何一个属性:

  • android:layout_weight=1
  • android:width="0dip"
  • android:ellipsize="none"
  • android:scrollHorizontally="false"

对于你的滚动视图,你可以尝试:

<ScrollView android:id="@+id/SCROLL_VIEW"  
android:layout_height="fill_parent"   
android:layout_width="fill_parent">  

<TextView   
   android:id="@+id/TEXT_VIEW"   
   android:layout_height="wrap_content"   
   android:layout_width="wrap_content"   
   android:text="Here goes your text" />  
</ScrollView>

现在在TextView参数中,尝试添加上面提到的属性之一。由于更改字体后需要换行,我不确定哪个属性适合您的需求。


TextView被ScrollView包裹,那么我应该如何设置ScrollView呢?谢谢。 - myro

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接