0 本章内容
- TextView自定义Span实现
- 多Span融合
- 点击事件冲突处理方法
1 TextView自定义Span实现
1.1 产品需求
产品要求实现一个类似于下图的功能
其中红框部分需要实现点击,且左右有Padding。
并且整体的文本需要有点击事件 和 长按事件,蓝字处要实现另一个点击事件
1.2 Android中的Span
这个不再赘述了,Android内本身支持很多类型的Span,例如ClickSpan、ForgroundColorSpan等等。具体实现方式大家可以自行查阅。
2 多Span融合方式
此处使用ClickSpan实现蓝字点击、使用自定义的ReplacementSpan实现UI层样式和Padding。
ClickSpan需要搭配LinkMovementMethod实现点击的具体逻辑。本身系统LinkMovementMethod并不支持去除下划线,并且在点击后会有background变化等问题。此处也许要自定义一个。
自定义Method的具体代码如下
public class MyLinkMovementMethod extends LinkMovementMethod {
private static LinkMovementMethod sInstance;
private long downTime;
public static MovementMethod getInstan