将TextView放在另一个的右侧,使用ellipsize中的多行

时间:2013-09-05 07:13:14

标签: android android-layout textview

我想做这样的事......

两个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?  ...但我需要多线解决方案

有什么想法吗?

1 个答案:

答案 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);
                }
            }
        });
    }