【问题标题】:Issue with set span applying bold设置跨度应用粗体的问题
【发布时间】:2017-03-24 18:16:30
【问题描述】:

我正在尝试为常见问题解答部分设置一个字符串交替粗体和不粗体,我看到一些奇怪的东西。只有一组问题和答案收到正确的跨度。调试时,我看到字符串生成器上只设置了两个跨度。它不应该为每个 set span 调用附加一个新的 span 吗?

  (activity as MainActivity).settingsPresenter.getFaq(
                    { success, message,value ->
                        if(success) {
                            var sb : SpannableStringBuilder = SpannableStringBuilder("")
                            var fcs : ForegroundColorSpan =  ForegroundColorSpan(Color.rgb(255, 255, 255))
                            var styleBold : StyleSpan = StyleSpan(Typeface.BOLD)
                            var styleNotBold : StyleSpan = StyleSpan(Typeface.NORMAL)

                            for (i in 0..value?.size!! - 1){
                                sb.append(value?.get(i)?.Question + "\n\n")
                                sb.setSpan(styleBold, startLocation, startLocation + value?.get(i)?.Question?.length!!, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE)
                                startLocation += value?.get(i)?.Question?.length!! + 2//update the start location pointer to color the next section of text

                                sb.append(value?.get(i)?.Answer + "\n\n")
                                sb.setSpan(styleNotBold, startLocation, startLocation + value?.get(i)?.Answer?.length!!, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE)
                                startLocation += value?.get(i)?.Answer?.length!! + 2
                            }

                            faq_content.append(sb)

                        }
                    })

【问题讨论】:

    标签: android text fonts


    【解决方案1】:

    我能够用这个解决方案解决这个问题:

     for (i in 0..value?.size!! - 1) {
                                var sb : SpannableStringBuilder = SpannableStringBuilder()
                                sb.append(value?.get(i)?.Question)
                                sb.append("\n\n")
                                sb.setSpan(StyleSpan(android.graphics.Typeface.BOLD), 0, sb.length, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE)
                                sb.append(value?.get(i)?.Answer)
                                sb.append("\n\n")
                                faq_content.append(sb)
                            }
    

    干杯!

    【讨论】:

      猜你喜欢
      • 2015-09-16
      • 1970-01-01
      • 2020-09-24
      • 2017-12-27
      • 1970-01-01
      • 2012-04-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多