今天遇到一个需求,TextView实现自动换行时一个英文单词能够换行显示,使布局整齐。通过网上查询,确定实现逻辑如下:
自定义TextView,重写其onMeasure方法,在测量textView的宽高时重新拆分字符串,实现单个单词换行显示,以下是自定义TextView的源码(基本复制博客:http://www.cnblogs.com/snser/p/5159125.html中的源码):
package com.example.lupeng.customtextviewbreak;
import android.content.Context;
import android.graphics.Paint;
import android.text.SpannableString;
import android.text.Spanned;
import android.text.TextUtils;
import android.util.AttributeSet;
import android.widget.TextView;
/**
* 单个单词可以显示在两行的TextView
* 缺点:setTextView时如果设置了SpannableString,则还需要调用本TextView的setSpan方法再次设置,而且由于Text换行导致设置Spannable时可能出现异常
* Created by lupeng.kang on 17/1/10.
*/
public class BreakTextView extends TextView {
private boolean mEnabled = true;
public BreakTextView(Context context) {
super(context);
}
public BreakTextView(Context context, AttributeSet