Android 如何确定要放置在TextView中的文本是否适合一行
有没有办法确定要放在TextView中的文本内容是否适合放在一行中 我想要实现的是显示在附加图像中(它是listView的一部分)。该问题与Android 如何确定要放置在TextView中的文本是否适合一行,android,listview,textview,Android,Listview,Textview,有没有办法确定要放在TextView中的文本内容是否适合放在一行中 我想要实现的是显示在附加图像中(它是listView的一部分)。该问题与textView#3有关。如果它太大,我想把它放在textView#2下面,但是如果内容足够短,我想把它放在textView#2的右边(我想避开第3行中的场景) 有人吗?。。我怎样才能解决这个特殊的问题? 我想这不能用listview行的单一布局来实现 这是可能的。您应该测量文本大小,并将其与TextView大小进行比较。如果文本宽度>文本视图宽度比它太长
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使用换行内容..显然是父视图组/版面宽度将决定此文本视图可以容纳多少内容(在平板电脑上,我肯定会有空间..)