判断TextView是否有省略

项目中用到判断Textview是否有省略的,有就显示[全部]的符号,没有就不显示。

效果图:


判断TextView是否有省略_第1张图片
image.png

判断方法:

    private void textCheckAll() {
        Layout layout = tvTag.getLayout();
        if (layout != null) {
            int lines = layout.getLineCount();
            if (layout.getEllipsisCount(lines - 1) > 0) { //有省略
                tvAlltext.setVisibility(View.VISIBLE);
            }else{  //无省略
                
            }
        }
    }

但是tvTag可以还没有绘制完全,getLayout会返回null,这里添加一个绘制完成的回调,在进行判断以解决这种情况。

        tvTag.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() {
            @Override
            public void onGlobalLayout() {
                Layout layout = tvTag.getLayout();
                if (layout != null) {
                    int lines = layout.getLineCount();
                    if (layout.getEllipsisCount(lines - 1) > 0) { //有省略
                        tvAlltext.setVisibility(View.VISIBLE);
                    }
                }
            }
        });

你可能感兴趣的:(判断TextView是否有省略)