我尝试设置ObservableField或String值,但仍然无法正常工作。如果我只是设置一个静态的true或false值而不是viewModel引用,那么它将起作用。
布局文件:
<layout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<data>
<variable
name="viewModel"
type="app.viewmodel.ViewModel"/>
</data>
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/recyclerview"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:scrollbars="vertical"
app:fastScrollEnabled="@{viewModel.isUserAdmin}"
app:fastScrollHorizontalThumbDrawable="@drawable/thumb_drawable"
app:fastScrollHorizontalTrackDrawable="@drawable/line_drawable"
app:fastScrollVerticalThumbDrawable="@drawable/thumb_drawable"
app:fastScrollVerticalTrackDrawable="@drawable/line_drawable"
app:layoutManager="androidx.recyclerview.widget.LinearLayoutManager"/>
</layout>
ViewModel:
class AppointmentsViewModel()
{
val isUserAdmin: Boolean = sharedPreferencesRepo.isUserAdmin
}
答案 0 :(得分:1)
{ '0': '{"field":"doc_no","cond":"is","val":"","main_cond":"and"}',
'1': '{"field":"doc_no","cond":"is","val":"","main_cond":"and"}' }
当前没有用于从代码设置快速滚动属性的公共方法。在撰写本文时,启用快速滚动的唯一方法是在布局XML中设置相关属性。 RecyclerView
然后从其构造函数调用一个私有方法来进行设置。
数据绑定库在生成其适配器代码时,找不到RecyclerView
属性的公共方法,这就是为什么会出现此错误的原因。只是不可能。
a request in the Issue Tracker可以为fastScrollEnabled
甚至a comment there that points out the data binding limitation添加相关功能,但是目前看来它并不是一个高优先级。