首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将List<SpannableString>转换为单个SpannableString

将List<SpannableString>转换为单个SpannableString
EN

Stack Overflow用户
提问于 2019-08-31 11:51:45
回答 2查看 146关注 0票数 1

我有一个TextView,它接收指向它的TextFormatted属性的SpannableString。我想要构建这个SpannableString的方法就像一个项目符号列表,在这个列表中,如果某个项目满足某些条件,它的颜色就会改变,否则它将保持默认的文本颜色;然后,我将每个SpannableString添加到一个列表中,最后将它们合并到一个SpannableString中,以返回给TextView。问题是我找不到一种方法去做。

我已经尝试添加每个SpannableString,但是+操作符不能使用它们。我尝试过使用TextUtils.Concat(),但它们似乎不像在Java语言中那样工作--在Java语言中,它们同时接受stringStringFormatted,但在Xamarin.Android中,它们只接受string

EN

回答 2

Stack Overflow用户

发布于 2019-09-02 11:04:59

将列表转换为单个SpannableString

您可以将列表转换为SpannableStringBuilder

代码语言:javascript
复制
List<SpannableString> spannableStringList = new List<SpannableString>();            
CustomTypefaceSpan customTypefaceSpan = new CustomTypefaceSpan(typeface);
var spannableString1 = new SpannableString("Hello");
spannableString1.SetSpan(customTypefaceSpan, 0, spannableString1.Length(), SpanTypes.ExclusiveExclusive);
spannableString1.SetSpan(new ForegroundColorSpan(Color.Green), 0, spannableString1.Length(), SpanTypes.InclusiveInclusive);
var spannableString2 = new SpannableString("Leo");
spannableString2.SetSpan(new ForegroundColorSpan(Color.Red),0, spannableString2.Length(), SpanTypes.InclusiveInclusive);
spannableStringList.Add(spannableString1);
spannableStringList.Add(spannableString2);
var ssBuilder= new SpannableStringBuilder();
foreach (var item in spannableStringList)
  {
     ssBuilder.Append(item);
  }
textView.SetText(ssBuilder, BufferType.Spannable);
票数 0
EN

Stack Overflow用户

发布于 2019-09-03 11:50:06

我发现,就像Xamarin.Android有一个TextView.TextFormatted属性来将TextView的文本设置为格式化(Spannable)文本一样,它也有一个TextUtils.ConcatFormatted,用于连接Spannable对象。

代码语言:javascript
复制
var spans = new List<SpannableString>();
var someSpan = new SpannableString("Foo");
// Style someSpan as needed
spans.Add(someSpan);
var result = new SpannableString(TextUtils.ConcatFormatted(spans.ToArray()));
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57735042

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档