如何将 LiveData 应用于 xxxFragment.class 而不是 XML

问题描述

如何将实时数据isRefreshing应用于swiperefreshLayout.isRefresh

xxxViewModel.class 中的代码:

var isRefreshing = MutableLiveData<Boolean>()

fun refresh() {
    viewModelScope.launch(Dispatchers.Main) {
        isRefreshing.value = true

        withContext(Dispatchers.IO) {
            fun doInBackground() // takes a long time
        }
   
        isRefreshing.value = false
    }
}

xxxFragment.class 中的代码:

binding.swiperefreshLayout.setOnRefreshListener {
    xxxViewModel.refresh()
}

// error here,require Boolean,found MutableLiveData<Boolean>
binding.swiperefreshLayout.isRefreshing = xxxViewModel.isRefreshing 

通常我将实时数据应用到 XML 中,如下所示,但我在 XML 中找不到 swiperefreshlayout.isRefreshing

<androidx.swiperefreshlayout.widget.SwipeRefreshLayout
        android:id="@+id/swiperefresh_layout"
        android:layout_width="match_parent"
        android:layout_height="0dp"
        isFreshing = "@{xxxViewModel.isRefreshing}">

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)