我在使用谷歌代码实验室的数据绑定(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/