我正在尝试设置String
的样式,然后再将其设置为TextView
。但是,当我运行该应用程序时,没有样式应用于文本。
我已经在strings.xml中将字符串资源定义为
<string name="amount_added_notice"> <![CDATA[Amount of <b><font color=\'#333333\'>\u20B9%1$s</font></b> added to %2$s Account]]> </string>
在
XML
中,我正在使用DataBinding
设置文本android:text="@{viewModel.firstText}"
firstText
变量在ViewModel
中定义为val firstText by lazy { ObservableField<String>() }
然后按以下方式分配
string
,firstText.set( HtmlCompat.fromHtml(context.getString(R.string.amount_added_notice, "500", "John's"), FROM_HTML_MODE_LEGACY)))
我究竟做错了什么?
最佳答案
val firstText by lazy { ObservableField<String>() }
尝试将其更改为:
val firstText by lazy { ObservableField<CharSequence>() }
看看是否有帮助。
HtmlCompat.fromHtml()
的输出是CharSequence
,特别是某种包含格式设置规则的Spannable
。我的猜测是它正在下转换为普通的String
。
关于android - 为什么HtmlCompat.fromHtml()没有设置文本样式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60785937/