android - 在androidx.recyclerview.widget.RecyclerView上找不到参数类型为boolean的属性“app:fastScrollEnabled”的 setter

标签 android android-recyclerview android-databinding

我尝试设置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
}

最佳答案

RecyclerView当前没有公共方法来设置代码中的快速滚动属性。在撰写本文时,启用快速滚动的唯一方法是在布局XML中设置相关属性。 RecyclerView然后从其构造函数调用一个私有方法来进行设置。

数据绑定库在生成其适配器代码时,找不到fastScrollEnabled属性的公共方法,这就是为什么会出现此错误的原因。只是还不可能。

a request in the Issue Tracker可以将相关功能添加到RecyclerView甚至是a comment there that points out the data binding limitation中,但是目前看来它并不是一个高优先级。

关于android - 在androidx.recyclerview.widget.RecyclerView上找不到参数类型为boolean的属性“app:fastScrollEnabled”的 setter ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51980565/

相关文章:

android - 不在前台的 Activity 在同一应用程序中启动另一个 Activity 的正确方法是什么?

Android Widget 是我正在开发的,默认情况下应该显示在主屏幕上

android - 关闭新 Activity 的 Activity

android - 有谁知道如何使用 RecyclerView 进行流式布局?

android - NestedScrollView Android 中的 RecyclerView

android - 使用 android 数据绑定(bind)单击按钮时的方法调用(已在 fragment 中定义)不起作用。?

Android:从特定号码接收短信?

android - RecyclerView 上的波纹效果在轻敲时不起作用

android - 如何使用 ViewModel 和 Databinding 实现验证?

java - 无法使用 Android 数据绑定(bind)进行双重绑定(bind)