Android,TextVIew单行加省略号 ...对比较坑的问题
16lz
2021-12-04
<TextView android:id="@+id/mTvUser" android:layout_width="wrap_content" android:layout_height="wrap_content" android:singleLine="true" android:ellipsize="end" android:text="张三" android:textSize="@dimen/wordSize_nomal"/>
android:singleLine="true"android:ellipsize="end"
想必大家都知道上面两个属性的作用是什么(未显示完时,在末尾增加省略号),但是有个比较坑的地方是,如果你的set的字符串最后一个字符是一个中文,显示的省略号就是三个点,如果是英文的那么有可能只显示一个点或者两个点
如图:
怎么 解决呢?
需要在代码中设置一下
mTvUser.post(new Runnable() { @Override public void run() { String ellipsizeStr = (String) TextUtils.ellipsize(mInfo.nickname, (TextPaint) mTvUser.getPaint(), mTvUser.getMeasuredWidth() - 10, TextUtils.TruncateAt.END); Logger.e(TAG, "ellipsizeStr: "+ ellipsizeStr); mTvUser.setText(ellipsizeStr); } });
更多相关文章
- Android自定义视图四:定制onMeasure强制显示为方形
- Android换行符变成方框的解决方法
- Android(安卓)实用工具Hierarchy Viewer实战
- Android(安卓)实用工具Hierarchy Viewer实战
- 转载一篇详细的分析:Android(安卓)View绘制和显示原理简介
- android window类的解释及软输入法模式选项:
- android:View的setTag和getTag使用
- Android通知栏点击通知消失
- ImageView的属性android:scaleType,即ImageView.setScaleType(Ima