我有一个TextView,其高度将根据屏幕中的其他组件而变化。我在此TextView中设置了一个长文本,因此我想将其省略。仅指定android:ellipsize =“ end”不起作用。仅在与maxLines一起指定时,椭圆化起作用。但是我无法为maxLines指定值,因为TextView的高度是动态的。如何在不为TextView指定maxLines的情况下将文本椭圆化?
Dev*_*oid 10
我通过添加全局布局侦听器找到了解决问题的方法。以下是代码段
tvDesc.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() {
@Override
public void onGlobalLayout() {
tvDesc.getViewTreeObserver().removeOnGlobalLayoutListener(this);
int noOfLinesVisible = tvDesc.getHeight() / tvDesc.getLineHeight();
tvDesc.setText(R.string.desc);
tvDesc.setMaxLines(noOfLinesVisible);
tvDesc.setEllipsize(TextUtils.TruncateAt.END);
}
});
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
1313 次 |
最近记录: |