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