返回介绍

2. TextView 的内部结构和辅助类

发布于 2024-12-23 22:05:50 字数 1135 浏览 0 评论 0 收藏

TextView 内部除了继承自 View 的相关属性和 measure、layout、draw 步骤,还包括:

  1. Layout : TextView 的文字排版、折行策略以及文本绘制都是在 Layout 里面完成的,TextView 的自身测量也受 Layout 的影响。Layout 是 TextView 执行 setText 方法后,由 TextView 内部创建的实例,并不能由外部提供。可以用 getLayout() 方法获取。
  2. TransformationMethod : 用来处理最终的显示结果的类,例如显示密码的时候把密码转换成圆点。这个类并不直接影响 TextView 内部储存的 Text,只影响显示的结果。
  3. MovementMethod : 用来处理 TextView 内部事件响应的类,可以针对 TextView 内文本的某一个区域做软键盘输入或者触摸事件的响应。
  4. Drawables : TextView 的静态内部类,用来处理和储存 TextView 的 CompoundDrawables,包括 TextView 的上下左右的 Drawable 以及错误提示的 Drawable。
  5. Spans : Spans 并不是特定的某一个类或者实现了某一个接口的类。它可以是任意类型,Spans 实际上做的事情是在 TextView 的内部的 text 的某一个区域做标记。其中有部分 Spans 可以影响 TextView 的绘制和测量,如 ImageSpan、BackgroundColorSpan、AbsoluteSizeSpan。还有可以响应点击事件的 ClickableSpan。
  6. Editor : TextView 作为可编辑文本控件的时候(EditText),使用 Editor 来处理文本的区域选择处理和判断、拼写检查、弹出文本菜单等。
  7. InputConnection : EditText 的文本输入部分是在 TextView 中完成的。而 InputConnection 是软键盘和 TextView 之间的桥梁,所有的软键盘的输入文字、修改文字和删除文字都是通过 InputConnection 传递给 TextView 的。

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。