Android:TextView的Layout创建过程

TextView组件,使用频率非常高,虽然使用起来比较简单,但是它的实现其实是一个复杂的过程。它对文字的管理是通过Layout实现的。TextView内部会根据不同的设置,创建不同的Layout,总共有三种。

DynamicLayout:用在EditText或者TextView中设置的是Spannable类型的文字(比如ClickSpanURL等)。

BoringLayout:常用在处理单行文本。(所有字符必须是LTR[left-to-right]

StaticLayout:这个是默认的TextViewLayout,用在文字不会被改变的状态下。

TextView中有一个Layout类型的属性。

private Layout mLayout;

那么它是在什么时候被创建的呢?我们就从measure说起。

if (mLayout == null) {
    makeNewLayout(want, hintWant, boring, hintBoring,
            width - getCompoundPaddingLeft() - getCompoundPaddingRight(), false);
}

measure

你可能感兴趣的:(Java,Android源码解读)