gpt4 book ai didi

android - BulletSpan 不工作

转载 作者:行者123 更新时间:2023-12-02 21:22:40 31 4
gpt4 key购买 nike

我尝试将 BulletSpan 插入 SpannableStringBuilder,但 BulletSpan 从未出现。

private void insertBulletSpan(SpannableStringBuilder spannable) {
Matcher matcher = bulletPattern.matcher(spannable);
while (matcher.find()) {
boolean set = true;
for (BulletSpan span : spannable.getSpans(matcher.start(),
matcher.end(), BulletSpan.class))
if (spannable.getSpanStart(span) >= matcher.start()
&& spannable.getSpanEnd(span) <= matcher.end())
spannable.removeSpan(span);
else {
set = false;
break;
}
if (set) {
spannable.setSpan(new BulletSpan(),
matcher.start(), matcher.end(),
Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
}
}
}

其中子弹模式:

bulletPattern = Pattern.compile(Pattern.quote("|b|"));

所以实际上我想替换所有出现的“|b|”与 BulletSpan。调用了设置跨度的方法,我验证了这一点,但文本仍然包含所有 |b|。我使用与 ImageSpans、URLSpans 和 UnderlineSpans 完全相同的代码 fragment 来替换类似的情况。它们工作得很好。

最佳答案

遇到了同样的挑战,结果发现 BulletSpan 仅当起点设置为(新)行的开头时才会显示。就我而言,在“\r\n”对之后。

关于android - BulletSpan 不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26438198/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com