scrollview 中的 firebase recyclerview 中的更新选项不起作用

updateoptions in firebase recyclerview inside scrollview not working

我在 fragment.it 中的 nestedscrollview 中创建了 firebase recyclerview well.but 当我在 firebase recyclerview 中使用 updateoptions 时,recyclerview 不工作。 我不知道如何解决这个问题。

最初创建的片段加载了来自 firebase.the recyclerview 的项目当我点击按钮更新选项时不起作用

这是我的 firebaserecyclerview

<?xml version="1.0" encoding="utf-8"?>
<androidx.core.widget.NestedScrollView 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"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@drawable/fragment_bg"
   >

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_marginTop="20dp"
        android:orientation="vertical"
        android:layout_marginBottom="50dp"
        >

    <TextView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:fontFamily="@font/montserrat"
        android:text="Hi, Aashik"
        android:textColor="@color/colorPrimary"
        android:layout_marginHorizontal="20dp"
        android:textSize="25dp" />
    <TextView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:fontFamily="@font/montserrat_bold"
        android:layout_marginHorizontal="20dp"

        android:text="Welcome Back"
        android:textColor="@color/colorPrimary"
        android:textSize="30dp" />

    <TextView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginHorizontal="20dp"

        android:fontFamily="@font/montserrat_bold"
        android:text="Category"
        android:textColor="@color/colorPrimaryDark"
        android:textSize="20sp" />


    <Button
        android:id="@+id/btn"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
    />


    <TextView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:fontFamily="@font/montserrat_bold"
        android:text="Products"
        android:layout_marginVertical="10dp"
        android:layout_marginHorizontal="20dp"
        android:textColor="@color/colorPrimaryDark"
        android:textSize="20sp" />


    <androidx.recyclerview.widget.RecyclerView
            android:id="@+id/productsRecyclerView"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:paddingBottom="100dp"
            android:layoutAnimation="@anim/layoutanimation"
        />

    </LinearLayout>



</androidx.core.widget.NestedScrollView>

代码是

productsRef = FirebaseDatabase.getInstance().getReference().child("products");

recyclerView = (RecyclerView) root.findViewById(R.id.productsRecyclerView);
btn= (Button) root.findViewById(R.id.btn);

 layoutManager = new LinearLayoutManager(getActivity());
        recyclerView.setLayoutManager(layoutManager);
        recyclerView.setHasFixedSize(true);
        FirebaseRecyclerOptions<Products> options=
                new FirebaseRecyclerOptions.Builder<Products>()
                        .setQuery(productsRef, Products.class)
                        .build();

        adapter = new FirebaseRecyclerAdapter<Products, ProductViewHolder>(options) {
            @Override
            protected void onBindViewHolder(@NonNull final ProductViewHolder holder, final int position, @NonNull final Products model) {



                   holder.productNameTv.setText(model.getName());
                   Picasso.get().load(model.getImageurl()).fit().into(holder.productImageIv);

                   holder.cardcontainer.setAnimation(AnimationUtils.loadAnimation(getActivity(),R.anim.cardviewanimation));


                   holder.itemView.setOnClickListener(new View.OnClickListener() {
                       @Override
                       public void onClick(View view) {
                           Intent intent = new Intent(getActivity(), ProductDetailsActivity.class);
                           intent.putExtra("imageurl",model.getImageurl());
                           intent.putExtra("name",model.getName());
                           intent.putExtra("desc",model.getDesc());
                           intent.putExtra("mrp",model.getMrp());
                           intent.putExtra("availability",model.getAvailability());
                           intent.putExtra("pid",model.getPid());
                           startActivity(intent);
                       }
                   });


            }


            @NonNull
            @Override
            public ProductViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
                View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.product_items_layout, parent, false);
                ProductViewHolder holder = new ProductViewHolder(view);
                return holder;
            }
        };
        recyclerView.setAdapter(adapter);
        adapter.startListening();

btn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Query query = productsRef.orderByChild("category").equalTo(catName);

               FirebaseRecyclerOptions<Products> newOptions=
                new FirebaseRecyclerOptions.Builder<Products>()
                        .setQuery(query, Products.class)
                        .build();
        adapter.updateOptions(newOptions);
       
);

recylerview 布局是

<?xml version="1.0" encoding="utf-8"?>
<androidx.cardview.widget.CardView xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:orientation="vertical"
    android:layout_width="match_parent"
    android:layout_height="120dp"
    android:layout_marginVertical="10dp"
    app:cardCornerRadius="2dp"
    app:cardElevation="5dp"
    android:layout_marginHorizontal="20dp"


    android:id="@+id/cardcontainer"
    >
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="horizontal"
        >


       <ImageView
           android:id="@+id/productImageIv"
           android:layout_width="100dp"
           android:layout_height="match_parent"
           android:src="@drawable/ic_topsym"
           android:layout_margin="10dp"
           >

       </ImageView>
           <RelativeLayout
               android:layout_width="match_parent"
               android:layout_height="match_parent"
               >
               <TextView
                   android:id="@+id/productNameTv"
                   android:layout_width="match_parent"
                   android:layout_height="match_parent"
                   android:textSize="20sp"
                   android:text="@string/welcome"
                   android:textColor="@color/colorBlack"
                   android:fontFamily="@font/arimo_bold"
                   android:padding="20dp">
               </TextView>


           </RelativeLayout>
       </LinearLayout>

</androidx.cardview.widget.CardView>

提前致谢。

请使用滑动刷新组件或在您的适配器中使用notifiedDatasetChanged()