我想做这样的事......
两个TextView,第一个多行,最后我需要另一个textview
|t1 content t1 content t1 content |
|t1 content t1 content... [t2 content]|
With shorter content
|t1 content t1 content t1 content |
|t1 content [t2 content]|
这与此处提出的问题类似 Two TextViews side by side, only one to ellipsize? ...但我需要多线解决方案
有什么想法吗?
答案 0 :(得分:0)
试试这个
我创建了这个全局函数,在你想要椭圆结束之后你必须传递textview对象而没有行。
public void doEllipsize(final TextView tv, final int maxLine) {
ViewTreeObserver vto = tv.getViewTreeObserver();
vto.addOnGlobalLayoutListener(new OnGlobalLayoutListener() {
@SuppressWarnings("deprecation")
@Override
public void onGlobalLayout() {
ViewTreeObserver obs = tv.getViewTreeObserver();
obs.removeGlobalOnLayoutListener(this);
if (maxLine <= 0) {
int lineEndIndex = tv.getLayout().getLineEnd(0);
String text = tv.getText().subSequence(0, lineEndIndex - 3) + "...";
tv.setText(text);
} else if (tv.getLineCount() >= maxLine) {
int lineEndIndex = tv.getLayout().getLineEnd(maxLine - 1);
String text = tv.getText().subSequence(0, lineEndIndex - 3) + "...";
tv.setText(text);
}
}
});
}