返回介绍

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

发布于 2024-12-23 22:05:50 字数 1135 浏览 0 评论 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 的。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

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