gpt4 book ai didi

Android `@BindingAdapter` setter 未被调用

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:14:00 24 4
gpt4 key购买 nike

这是我的BindingAdapter:

public class Bindings{
@BindingAdapter({"font"})
public static void setFont(TextView textView, String fontName) {
textView.setTypeface(FontCache.getInstance(textView.getContext()).get(fontName));
}
}

*我没有使用“font”作为注释参数,而是尝试了“bind:font”、“android:font”和“app:font”,并在布局中进行了所有相应的更改,但是BindingAdapter 仍然没有被调用

这是我使用 BindingAdapter (bind_layout.xml) 的布局:

<?xml version="1.0" encoding="utf-8"?>
<layout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">

<data></data>

<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal">

<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@null"
font="@{`fontawesome-webfront`}"
android:text="@string/double_left"/>
</LinearLayout>
</layout>

*此布局包含在使用 DatabindingUtils.setContentView 设置的 Activity 布局中

这是布局包括 bind_layout.xml 的 Activity :

public class ACreateSemester extends AppCompatActivity {
private List<CreateItemView> mCreateItemViews;
private LinearLayout mItemContainer;

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
DataBindingUtil.setContentView(this,R.layout.a_create_items);
mItemContainer = (LinearLayout) findViewById(R.id.item_container);
mItemContainer.addView(new CreateItemView(this, Item.getDefaultItem()));
}

}

我在此处引用的三个文件均已完整列出。

我知道 BindingAdapter 没有被调用的方式是因为我在方法和正文中设置了一个断点,并且永远不会到达断点。

知道为什么 BindingAdapter 没有触发吗?

最佳答案

请同时确保您已完成这些步骤。

  1. 在您的应用级 build.gradle 中应用插件:'kotlin-kapt'。
  2. 将生命周期所有者设置为从您的 Activity 的 onCreate() 方法绑定(bind),例如 binding.lifecycleOwner = this,这是您的 Activity。
  3. 将 font="@{fontawesome-webfront}"更改为 app:font="@{fontawesome-webfront}"在你的 xml 中。
  4. 在 xml 布局中向您的按钮添加一些 Id。

关于Android `@BindingAdapter` setter 未被调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40442622/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com