老实说,我尝试了很多,但没有成功。
我HomeViewModel
在构造函数中有一个和一些数据:
class HomeViewModel(
val userName: MutableLiveData<String> = MutableLiveData(),
val userAvatar: MutableLiveData<String> = MutableLiveData(),
// ...
val showProgressBarUserInfo: MutableLiveData<Boolean> = MutableLiveData()
) : BaseViewModel() {
和saveUserInfo()
HomeViewModel 中的功能
private fun saveUserInfo(user: User) {
showProgressBarUserInfo.value = true
getSomeOtherData()
showProgressBarUserInfo.value = false
}
where 函数getSomeOtherData()
还加载了同样绑定的用户名和头像
<layout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools">
<data>
<import type="android.view.View" />
<variable
name="vm"
type="/path/to/HomeViewModel" />
</data>
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<ProgressBar
// ...
android:visibility="@{vm.showProgressBarUserInfo ? View.VISIBLE : View.GONE}" />
</androidx.constraintlayout.widget.ConstraintLayout>
</layout>
我也尝试创建一个函数setVisibleOrGone()
(扩展与否)
fun View.setVisibleOrGone(bool: Boolean) {
if (bool) {
this.visibility = View.VISIBLE
} else {
this.visibility = View.GONE
}
}
带有 @BindingAdapter("showOrHide") 注释并像使用它一样
showOrHide="@{vm.showProgressBarUserInfo}"
但以上所有方法都不起作用。
用户名和头像的PS数据绑定成功,但没有显示进度条。
PSS工具栏标题和 ImageView:
app:title="@{vm.userName}"
loadAvatar="@{vm.userAvatar}"
loadAvatar
扩展功能在哪里
请帮我