Android 如何确定要放置在TextView中的文本是否适合一行

Android 如何确定要放置在TextView中的文本是否适合一行,android,listview,textview,Android,Listview,Textview,有没有办法确定要放在TextView中的文本内容是否适合放在一行中 我想要实现的是显示在附加图像中(它是listView的一部分)。该问题与textView#3有关。如果它太大,我想把它放在textView#2下面,但是如果内容足够短,我想把它放在textView#2的右边(我想避开第3行中的场景) 有人吗?。。我怎样才能解决这个特殊的问题? 我想这不能用listview行的单一布局来实现 这是可能的。您应该测量文本大小,并将其与TextView大小进行比较。如果文本宽度>文本视图宽度比它太长

有没有办法确定要放在TextView中的文本内容是否适合放在一行中

我想要实现的是显示在附加图像中(它是listView的一部分)。该问题与
textView#3
有关。如果它太大,我想把它放在
textView#2
下面,但是如果内容足够短,我想把它放在
textView#2
的右边(我想避开
第3行中的场景)

有人吗?。。我怎样才能解决这个特殊的问题? 我想这不能用listview行的单一布局来实现


这是可能的。您应该测量文本大小,并将其与TextView大小进行比较。如果文本宽度>文本视图宽度比它太长

您可以从中了解文本测量


您还可以使用TextView的内置功能,将其设置为单行并设置文本省略号方法。

尝试TextView的此属性

android:maxLength="number of characters you want to display in textview"
现在在Activity中,检查字符串长度是否大于maxLength,然后更改视图的位置

一个解决方案(不是很好的解决方案)是对字符串在textView中占用的空间进行计算。在我的特殊情况下,我添加了两个文本视图(3和3B)&这取决于我的数学计算结果-我只使用一个&隐藏另一个

详情:

  • 在适配器的getView方法中,找出父listView的宽度

    公共视图getView(int位置、视图转换视图、视图组父视图){ int listViewWidth=parent.getWidth()

  • 计算放置在同一行中的其他文本视图所占用的空间(在我的示例中仅为文本视图2)

    Paint Paint=textViewX.getPaint(); occupiedWidth=(int)(occupiedWidth+paint.measureText(“要放置在textview中的文本”)

  • 比较要放置在最后一个文本视图中的文本占用的空间(在我的屏幕截图textView3中,计算宽度的公式相同),并与剩余空间进行比较(
    listViewWidth-occupiedWidth

  • 在正确的文本视图上设置文本并隐藏另一个
  • …根据需要改进代码

  • 我需要显示全文..这可能不是一个大段落..可能约10个字..如果您想在一行中显示全文,请使用AutoResizeTextView。它将减小字体大小,以便在一行中容纳textView中的所有文本。谢谢..但我不知道字符数..textView使用换行内容..显然是父视图组/版面宽度将决定此文本视图可以容纳多少内容(在平板电脑上,我肯定会有空间..)