Skip to content
李跃东 edited this page Feb 9, 2017 · 5 revisions

####简单说明 AlignTextView

AlignTextView完全重写TextView的onDraw方法,计算每行应该显示多少字符,进而进行绘制,所以很多原生的功能没有或者失效,例如选择复制(选择时错位)。

CBAlignTextView

CBAlignTextView则从另一角度进行操作,保留着原生TextView应有的功能.原生的TextView是以word进行分行的,为了能够依旧按照此规则进行,CBTextView则对TextView的内容进行了小幅度修改,增加了空格来使TextView看着像按照字符进行分行一样。在要换行的地方进行添加空格处理,这样就可以在合适的位置换行,同时也不会打乱原生的TextView的排版换行选择复制等问题,同时为了能够弥补右侧添加空格所占的空间,CBTextView自动给paddingLeft添加了空格所占的宽度。为了能够使右端尽可能的对齐,将右侧多出的空隙尽可能的分配到该行的标点(可以自定义)后面,达到两段对齐的效果。

####使用 直接引用即可

<me.codeboy.android.aligntextview.CBAlignTextView
        android:id="@+id/cbAlignTv"
        android:textIsSelectable="true"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"/>


<me.codeboy.android.aligntextview.AlignTextView
        android:id="@+id/alignTv"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"/>

如果需要CBAlignTextView支持android默认的选择复制,请在xml中加入以下代码:

android:textIsSelectable="true"

CBAlignTextView中增加了以下方法获取TextView的文本内容,请不要使用getText()获取:

getRealText()

AlignTextView不支持选择复制,但是可以自定义最后一行的对齐方式:

setAlign(Align align)

设置每一段最后一行对齐方式,默认居左对齐

Clone this wiki locally