将我的Android应用Java代码转换为Kotlin,我使用数据绑定将自定义字体设置为TextViews。我曾经从XML传递字体字符串,如下所示
app:customFont="@{'harmonia-semibold.ttf'}"
将@BindingAdapter转换为kotlin后,上述行无法正常工作,并且预期抛出 expr或lambda表达式,出现“错误”。错误。用getter方法替换硬编码的字符串值非常有效。下面是我的绑定适配器,不知道为什么它不采取硬编码字符串
@JvmStatic
@BindingAdapter("app:customFont")
fun setCustomFont(textView: TextView, font: String) {
textView.typeface = Typeface.createFromAsset(textView.context.assets, font)
}
由于
答案 0 :(得分:2)
See this snap我也遇到过同样的问题。经过大量的试验和错误后,我找到了解决方案。这个解决方案对我有用。在您的硬编码字符串前后使用`符号。
代替app:customFont =“ @ {harmonia-semibold.ttf}”
<EditText
android:id="@+id/etCNPwd"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:backgroundTint="@color/edittext_underline_color"
android:hint="@string/confirm_new_password"
android:text="0000000000"
android:inputType="textPassword"
android:maxLength="10"
android:textColor="@color/text_color24"
android:textSize="@dimen/sp_15"
bind:setUpPwdLayout="@{`Poppins-Regular.ttf`}"
bind:addTextChangeListener="@{null}"/>
查看快照并找到解决方案。