java.lang.RuntimeException: PARAGRAPH 跨度必须从段落边界开始(后面是 46 个)
java.lang.RuntimeException: PARAGRAPH span must start at paragraph boundary (46 follows )
尝试在文本视图中呈现文本时出现以下错误
java.lang.RuntimeException: PARAGRAPH span must start at paragraph boundary (46 follows )
at android.text.SpannableStringInternal.setSpan(SpannableStringInternal.java:161)
at android.text.SpannableStringInternal.copySpans(SpannableStringInternal.java:67)
at android.text.SpannableStringInternal.<init>(SpannableStringInternal.java:42)
at android.text.SpannedString.<init>(SpannedString.java:30)
at android.text.method.ReplacementTransformationMethod.getTransformation(ReplacementTransformationMethod.java:83)
at android.widget.TextView.setText(TextView.java:4436)
at android.widget.TextView.setText(TextView.java:4332)
at android.widget.TextView.setText(TextView.java:4307)
我这样打电话
myAsyncTask().execute(source, listDrawable, textView.getContext());
return listDrawable;
}
}, new MyTagHandler());
textView.setText(htmlText);
谁能帮我解决上面的问题
您可能正在使用函数 Html.fromHtml(String source)
,该函数已针对 Android SDK API >= 24 (Anrdroid 7.0)
进行了更改,以获取针对 textView.setText(htmlText)
的 Spannable,因此生成的 Spannable 现在略有不同。因此,它不再适合旧的已弃用 functions/attributes。
因此,您有三种选择来解决您的问题:
- (EDIT:) 可能是最简单的解决方案:如果您在列表元素中使用 android 属性
android:singleLine=true
,请使用 android:maxLines="1"
相反。
- 基本上,您必须照顾好您的 Spannable 及其边界,尤其是当您自己创建 Spannable 时。
- 只使用支持的HTML标签,可以直接从源代码中读取出来(here)。
- 您也可以使用函数
loadDataWithBaseURL(...)
来解决您的问题,但是您必须使用 webview,这对于列表元素来说可能是一个很大的过载。
尝试在文本视图中呈现文本时出现以下错误
java.lang.RuntimeException: PARAGRAPH span must start at paragraph boundary (46 follows )
at android.text.SpannableStringInternal.setSpan(SpannableStringInternal.java:161)
at android.text.SpannableStringInternal.copySpans(SpannableStringInternal.java:67)
at android.text.SpannableStringInternal.<init>(SpannableStringInternal.java:42)
at android.text.SpannedString.<init>(SpannedString.java:30)
at android.text.method.ReplacementTransformationMethod.getTransformation(ReplacementTransformationMethod.java:83)
at android.widget.TextView.setText(TextView.java:4436)
at android.widget.TextView.setText(TextView.java:4332)
at android.widget.TextView.setText(TextView.java:4307)
我这样打电话
myAsyncTask().execute(source, listDrawable, textView.getContext());
return listDrawable;
}
}, new MyTagHandler());
textView.setText(htmlText);
谁能帮我解决上面的问题
您可能正在使用函数 Html.fromHtml(String source)
,该函数已针对 Android SDK API >= 24 (Anrdroid 7.0)
进行了更改,以获取针对 textView.setText(htmlText)
的 Spannable,因此生成的 Spannable 现在略有不同。因此,它不再适合旧的已弃用 functions/attributes。
因此,您有三种选择来解决您的问题:
- (EDIT:) 可能是最简单的解决方案:如果您在列表元素中使用 android 属性
android:singleLine=true
,请使用android:maxLines="1"
相反。 - 基本上,您必须照顾好您的 Spannable 及其边界,尤其是当您自己创建 Spannable 时。
- 只使用支持的HTML标签,可以直接从源代码中读取出来(here)。
- 您也可以使用函数
loadDataWithBaseURL(...)
来解决您的问题,但是您必须使用 webview,这对于列表元素来说可能是一个很大的过载。