gpt4 book ai didi

Android HtmlCompat.fromHtml 标签不起作用

转载 作者:行者123 更新时间:2023-12-03 17:09:38 24 4
gpt4 key购买 nike

我有这种来自服务器的价格 html

<del><span class="woocommerce-Price-amount amount"><span class="woocommerce-Price-currencySymbol">&#8377;</span>12,000.00</span></del> <ins><span class="woocommerce-Price-amount amount"><span class="woocommerce-Price-currencySymbol">&#8377;</span>3,999.00</span></ins>
我正在使用 HTMLCompact 在 textview 中呈现它
HtmlCompat.fromHtml(description, HtmlCompat.FROM_HTML_MODE_COMPACT)
但折扣文本不是 StrikeThrough。 Del 标记完全被忽略。
按要求执行代码
<TextView
android:id="@+id/course_name"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="16dp"
android:fontFamily="@font/open_sans_semi_bold"
app:renderHtmlText="@{viewModel.product.priceHtml}"
android:textSize="18sp" />


//Binding Adapter
@BindingAdapter("renderHtmlText")
fun bindRenderHtmlText(view: TextView, description: String?) {
if (description != null) {
view.text = HtmlCompat.fromHtml(description, HtmlCompat.FROM_HTML_MODE_COMPACT)
} else {
view.text = ""
}
}

最佳答案

基于handleEndTag的逻辑来自 Android 框架 source , 外 del标签可能会被内部 span 忽略标签。
建议的解决方案是添加内联样式 style="text-decoration: line-through;为了兼容性,如下所示。

<del>
<span class="woocommerce-Price-amount amount" style="text-decoration: line-through;">
<span class="woocommerce-Price-currencySymbol">&#8377;</span>12,000.00
</span>
</del>
<ins><span class="woocommerce-Price-amount amount"><span class="woocommerce-Price-currencySymbol">&#8377;</span>3,999.00</span>

或调整您的 html 页面结构以制作 del标签内 span标签。
<span class="woocommerce-Price-amount amount">
<span class="woocommerce-Price-currencySymbol"><del>&#8377;</del></span><del>12,000.00</del>
</span>
<ins><span class="woocommerce-Price-amount amount"><span class="woocommerce-Price-currencySymbol">&#8377;</span>3,999.00</span>
</ins>

关于Android HtmlCompat.fromHtml <del> 标签不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66407971/

24 4 0