有没有办法确定要放在TextView中的文本内容是否适合单行?
我想要实现的内容显示在附加图像中(它是listView的一部分)。问题与textView#3
有关。如果它太大,我想将它放在textView#2
下方,但如果内容足够短,我想将它放在textView#2
的右边(row#3
中看到的情景就是我想要的逃避)
那么,有人吗?..我怎样才能解决这个特殊问题? 我想象我的listview行的单一布局无法实现这一点..
答案 0 :(得分:2)
有可能。您应该测量文本大小并将其与TextView大小进行比较。如果文字宽度> textView宽度比它太长。
您可以从this post了解文字测量。
您也可以使用TextView的内置功能,并使其成为单行和设置文本椭圆化方法。
答案 1 :(得分:0)
解决方案(并不是一个漂亮的解决方案)是对字符串中textView占用的空间进行一些数学运算。在我的特定情况下,我添加了2个textViews(3& 3B)&取决于我的数学计算所说的 - 我只会使用一个&隐藏另一个。
详细说明:
找出父listView的宽度
public View getView(int position,View convertView,ViewGroup parent){ int listViewWidth = parent.getWidth();
通过放置在同一行的其他textView计算占用的空间(在我的情况下只是textView2);
Paint paint = textViewX.getPaint(); occupiedWidth =(int)(occupiedWidth + paint.measureText(“要放在textview中的文本”));
比较文本占用的空间,放置在最后一个textview中(在我的screenShot textView3中,相同的公式计算宽度)&与剩余空间(listViewWidth - occupiedWidth
)
答案 2 :(得分:-1)
尝试textview的这个属性
android:maxLength="number of characters you want to display in textview"
现在在Activity中检查字符串长度是否为> maxLength比改变视图的位置。