Skip to content

Commit 1f59ab3

Browse files
committed
[1.7.0-feature] Span系列示例
1 parent e8a2628 commit 1f59ab3

File tree

2 files changed

+21
-2
lines changed

2 files changed

+21
-2
lines changed

app/src/main/kotlin/org/ninetripods/mq/study/activity/SpanStudyActivity.kt

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ import org.ninetripods.mq.study.kotlin.ktx.showToast
1616
import org.ninetripods.mq.study.span.CenterImageSpan
1717
import org.ninetripods.mq.study.span.CustomClickSpan
1818
import org.ninetripods.mq.study.span.RelativeSizeColorSpan
19+
import org.ninetripods.mq.study.span.SpanFactory
1920

2021
class SpanStudyActivity : BaseActivity() {
2122

@@ -124,8 +125,12 @@ class SpanStudyActivity : BaseActivity() {
124125
// processParagraph(spanBuilder)
125126

126127
tvSpan.movementMethod = LinkMovementMethod.getInstance()
127-
tvSpan.text = spanBuilder
128-
// tvSpan.setText(spanBuilder, TextView.BufferType.SPANNABLE)
128+
tvSpan.setSpannableFactory(SpanFactory())
129+
/**
130+
* SpannedString -> Spanned接口
131+
* SpannableString、SpannableStringBuilder -> Spannable接口
132+
*/
133+
tvSpan.setText(spanBuilder, TextView.BufferType.SPANNABLE)
129134
tvSpan.setOnClickListener {
130135
//避免ClickSpan与TextView本身同时相应点击事件
131136
(it as? TextView)?.let { tv ->
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
package org.ninetripods.mq.study.span
2+
3+
import android.text.Spannable
4+
5+
/**
6+
* 自定义Spannable.Factory
7+
* Created by mq on 2023/7/10
8+
*/
9+
class SpanFactory : Spannable.Factory() {
10+
11+
override fun newSpannable(source: CharSequence?): Spannable {
12+
return source as Spannable
13+
}
14+
}

0 commit comments

Comments
 (0)