android - 如果绑定(bind)适配器提供了 setter ,请检查适配器是否正确注释以及参数类型是否匹配

标签 android data-binding

我在使用谷歌代码实验室的数据绑定(bind)时遇到了麻烦。
当我尝试使用以下功能时发生了这种情况。

    @BindingAdapter("app:hideIfZero")
    fun hideIfZero(view: View, number: Int) {
        view.visibility = if (number == 0) View.GONE else View.VISIBLE
    }

我在 xml 中调用它,如下面的代码。
    <ProgressBar
        ...
        app:hideIfZero="@{viewmodel.likes}"
        ... />

viewModel 如下所示。
class SimpleViewModel : ViewModel() {
    ...
    private val _likes = MutableLiveData(0)

    ...
    var likes: LiveData<Int> = _likes

我已经尝试删除所有缓存 Android Studio 生成
但它没有按我的 Intent 工作。
所以我认为我错过了一个问题。

我尝试了代码实验室 https://codelabs.developers.google.com/codelabs/android-databinding/#7
我的存储库在这里https://github.com/libliboom/codelab-data-binding

谁让我知道这个问题?

最佳答案

最后,由于以下链接,我解决了我报告的问题。

https://github.com/googlecodelabs/android-databinding/issues/11

您应该添加注释处理器“kotlin-kapt”。
很难弄清楚这个问题。

我还在下面的链接中更新了与此问题相关的存储库。
https://github.com/libliboom/codelab-data-binding/commit/a98e3dc6079f542a49698a4d717b71ad4737dfdf

我希望有一天它可以帮助那些为此苦苦挣扎的人。
祝你好运!

关于android - 如果绑定(bind)适配器提供了 setter ,请检查适配器是否正确注释以及参数类型是否匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59168167/

相关文章:

android - 在使用 genymotion 时获得接受 EULA 的空白屏幕

android - 从快捷方式启动 Activity 总是同时启动主 Activity

java - 无法点击Robotium中的ImageView

c# - 如何更新绑定(bind),特别是对于派生值?

c# - 在 ItemsControl 内的 DataTemplate 内的 Button 的 WPF Databinding ContextMenu

android - 检测图像(位图)上色点的触摸

android - 如何在Android中使文本淡入淡出?

wpf - 用于 View 模型的具有多个 DataTemplate 的 ItemsControl

c# - WPF ComboBox : static list of ComboBoxItems, 但数据绑定(bind) SelectedItem?

c# - WPF TextBox 数据绑定(bind)问题 > :-(