Android RecyclerView正在加载项目,但没有滚动。Onclick也不起作用

Android RecyclerView正在加载项目,但没有滚动。Onclick也不起作用,android,firebase,arraylist,android-recyclerview,android-adapter,Android,Firebase,Arraylist,Android Recyclerview,Android Adapter,Recycler view加载项目和图像,但它无法正确滚动底部项目,当我尝试触摸滚动时,它会向下拖动一点,然后反弹回顶部。我在这些按钮上设置的onlick也不起作用 CategoryFragemt.java public class CategoryFragment extends Fragment { Data data; private List<Category> categoryList = new ArrayList<>(); private RecyclerV

Recycler view加载项目和图像,但它无法正确滚动底部项目,当我尝试触摸滚动时,它会向下拖动一点,然后反弹回顶部。我在这些按钮上设置的onlick也不起作用

CategoryFragemt.java

public class CategoryFragment extends Fragment {
Data data;
private List<Category> categoryList = new ArrayList<>();
private RecyclerView recyclerView;
private CategoryAdapter mAdapter;

List<Category> catlist = new ArrayList<>();
公共类CategoryFragment扩展了片段{
数据;
private List categoryList=new ArrayList();
私人回收站;
私有类别适应器;
List catlist=new ArrayList();
FirebaseDatabase=FirebaseDatabase.getInstance(); DatabaseReference=firebaseDatabase.getReference()

public CategoryFragment(){
//必需的空公共构造函数
}
@凌驾
创建视图上的公共视图(布局、充气机、视图组容器、,
Bundle savedInstanceState){
//为该碎片膨胀布局
//firebaseDatabase.getInstance();
视图=充气机。充气(R.layout.fragment_类别,容器,错误);
recyclerView=view.findViewById(R.id.category_rv);
recyclerView.setHasFixedSize(true);
数据=新数据();
RecyclerView.LayoutManager mLayoutManager=新的LinearLayoutManager(getActivity());
recyclerView.setLayoutManager(mLayoutManager);
recyclerView.setItemViewCacheSize(20);
//setItemAnimator(新的DefaultItemAnimator());
getCatList();
返回视图;
}
@凌驾
已创建视图上的公共void(视图,@Nullable Bundle savedInstanceState){
super.onViewCreated(视图,savedInstanceState);
//您可以在此处为不同的片段或不同的标题设置工具栏的标题
getActivity().setTitle(“类别”);
}
公共列表getCatList(){
reference=FirebaseDatabase.getInstance().getReference(“类别”);
reference.addListenerForSingleValueEvent(新的ValueEventListener()){
@凌驾
public void onDataChange(@NonNull DataSnapshot DataSnapshot){
对于(DataSnapshot dataSnapshot1:DataSnapshot.getChildren()){
类别b=dataSnapshot1.getValue(类别.class);
类别列表。添加(b);
//Dialog.show();
}
mAdapter=newcategoryadapter(getCatList(),getContext(),“Category”);
RecyclerView.LayoutManager mLayoutManager=新的LinearLayoutManager(getContext(),LinearLayoutManager.VERTICAL,false);
recyclerView.setLayoutManager(mLayoutManager);
setItemAnimator(新的DefaultItemAnimator());
recyclerView.setAdapter(mAdapter);
mAdapter.notifyDataSetChanged();
}
@凌驾
已取消的公共void(@NonNull DatabaseError DatabaseError){
}
});
返回类别列表;
}
}

CATEGORYADAPTER.jAVA

public class CategoryAdapter extends RecyclerView.Adapter<CategoryAdapter.MyViewHolder> {

List<Category> categoryList;
Context context;
String Tag;

public CategoryAdapter(List<Category> categoryList, Context context) {
    this.categoryList = categoryList;
    this.context = context;
}

public CategoryAdapter(List<Category> categoryList, Context context, String tag) {
    this.categoryList = categoryList;
    this.context = context;
    Tag = tag;
}

@NonNull
@Override
public MyViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int i) {
    View itemView;
    if (Tag.equalsIgnoreCase("Home")) {
        itemView = LayoutInflater.from(parent.getContext())
                .inflate(R.layout.row_home_category, parent, false);
    } else {
        itemView = LayoutInflater.from(parent.getContext())
                .inflate(R.layout.row_category, parent, false);
    }


    return new MyViewHolder(itemView);
}

@Override
public void onBindViewHolder(@NonNull final MyViewHolder holder, int position) {

    Category category = categoryList.get(holder.getAdapterPosition());
    holder.title.setText(category.getTitle());
    if (Tag.equalsIgnoreCase("Category")) {

        Picasso.get()
                .load(category.getImage())
                .fit()
                .centerInside()
                .placeholder(R.drawable.cart)
                .error(R.drawable.cauliflower)
                .into(holder.imageView);

    }



    holder.cardView.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            Intent intent = new Intent(context, ProductActivity.class);
            intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
            context.startActivity(intent);
            if(holder.title.getText().toString().equalsIgnoreCase("dairy")){
                Intent i = new Intent(context, ProductActivity.class);
                intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
                context.startActivity(i);
            }
        }
    });

    holder.title.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            Intent intent = new Intent(context, ProductActivity.class);
            intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
            context.startActivity(intent);
        }
    });

}

@Override
public int getItemCount() {
    if (Tag.equalsIgnoreCase("Home") && categoryList.size() < 6 && categoryList.size() > 3) {
        return 3;
    } else if (Tag.equalsIgnoreCase("Home") && categoryList.size() >= 6) {
        return 6;
    } else {
        return categoryList.size();
    }

}

public class MyViewHolder extends RecyclerView.ViewHolder {
    ImageView imageView;
    TextView title;
    ProgressBar progressBar;
    CardView cardView;

    public MyViewHolder(@NonNull View itemView) {
        super(itemView);

        imageView = itemView.findViewById(R.id.category_image);
        title = itemView.findViewById(R.id.category_title);
        progressBar = itemView.findViewById(R.id.progressbar);
        cardView = itemView.findViewById(R.id.card_view);
    }
}
公共类CategoryAdapter扩展了RecyclerView.Adapter{
列表分类列表;
语境;
字符串标签;
公共类别适配器(列表类别列表、上下文){
this.categoryList=categoryList;
this.context=上下文;
}
公共CategoryAdapter(列表categoryList、上下文、字符串标记){
this.categoryList=categoryList;
this.context=上下文;
标签=标签;
}
@非空
@凌驾
public MyViewHolder onCreateViewHolder(@NonNull ViewGroup父级,int i){
查看项目视图;
if(标记相等信号情况(“主”)){
itemView=LayoutInflater.from(parent.getContext())
.充气(R.layout.row\u home\u类别,父级,假);
}否则{
itemView=LayoutInflater.from(parent.getContext())
.充气(R.layout.row_类别,父级,假);
}
返回新的MyViewHolder(itemView);
}
@凌驾
public void onBindViewHolder(@NonNull final MyViewHolder,int位置){
Category=categoryList.get(holder.getAdapterPosition());
holder.title.setText(category.getTitle());
if(标记相等信号情况(“类别”)){
毕加索
.load(category.getImage())
.fit()
.centerInside()
.占位符(R.drawable.cart)
.错误(R.可拔花椰菜)
.插入(支架.图像视图);
}
holder.cardView.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图v){
意向意向=新意向(上下文,ProductActivity.class);
intent.addFlags(intent.FLAG\u ACTIVITY\u CLEAR\u TOP);
背景。开始触觉(意图);
if(holder.title.getText().toString().equalsIgnoreCase(“dairy”)){
意图i=新意图(上下文、ProductActivity.class);
intent.addFlags(intent.FLAG\u ACTIVITY\u CLEAR\u TOP);
背景。起始触觉(i);
}
}
});
holder.title.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图){
意向意向=新意向(上下文,ProductActivity.class);
intent.addFlags(intent.FLAG\u ACTIVITY\u CLEAR\u TOP);
背景。开始触觉(意图);
}
});
}
@凌驾
public int getItemCount(){
if(Tag.equalsIgnoreCase(“Home”)和&categoryList.size()<6和&categoryList.size()>3){
返回3;
}else if(Tag.equalsIgnoreCase(“Home”)和&categoryList.size()>=6){
返回6;
}否则{
返回categoryList.size();
}
}
公共类MyViewHolder扩展了RecyclerView.ViewHolder{
图像视图图像视图;
文本视图标题;
ProgressBar ProgressBar;
卡德维尤;
公共MyViewHolder(@NonNull View itemView){
超级(项目视图);
imageView=itemView.findViewById(R.id.category\U图像);
title=itemView.findviewbyd(R.id.category\u title);
progressBar=itemView.findViewById(R.id.progressBar);
cardView=itemView.findViewById(R.id.card\U视图);
}
}
}

类别\u片段
public class CategoryAdapter extends RecyclerView.Adapter<CategoryAdapter.MyViewHolder> {

List<Category> categoryList;
Context context;
String Tag;

public CategoryAdapter(List<Category> categoryList, Context context) {
    this.categoryList = categoryList;
    this.context = context;
}

public CategoryAdapter(List<Category> categoryList, Context context, String tag) {
    this.categoryList = categoryList;
    this.context = context;
    Tag = tag;
}

@NonNull
@Override
public MyViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int i) {
    View itemView;
    if (Tag.equalsIgnoreCase("Home")) {
        itemView = LayoutInflater.from(parent.getContext())
                .inflate(R.layout.row_home_category, parent, false);
    } else {
        itemView = LayoutInflater.from(parent.getContext())
                .inflate(R.layout.row_category, parent, false);
    }


    return new MyViewHolder(itemView);
}

@Override
public void onBindViewHolder(@NonNull final MyViewHolder holder, int position) {

    Category category = categoryList.get(holder.getAdapterPosition());
    holder.title.setText(category.getTitle());
    if (Tag.equalsIgnoreCase("Category")) {

        Picasso.get()
                .load(category.getImage())
                .fit()
                .centerInside()
                .placeholder(R.drawable.cart)
                .error(R.drawable.cauliflower)
                .into(holder.imageView);

    }



    holder.cardView.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            Intent intent = new Intent(context, ProductActivity.class);
            intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
            context.startActivity(intent);
            if(holder.title.getText().toString().equalsIgnoreCase("dairy")){
                Intent i = new Intent(context, ProductActivity.class);
                intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
                context.startActivity(i);
            }
        }
    });

    holder.title.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            Intent intent = new Intent(context, ProductActivity.class);
            intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
            context.startActivity(intent);
        }
    });

}

@Override
public int getItemCount() {
    if (Tag.equalsIgnoreCase("Home") && categoryList.size() < 6 && categoryList.size() > 3) {
        return 3;
    } else if (Tag.equalsIgnoreCase("Home") && categoryList.size() >= 6) {
        return 6;
    } else {
        return categoryList.size();
    }

}

public class MyViewHolder extends RecyclerView.ViewHolder {
    ImageView imageView;
    TextView title;
    ProgressBar progressBar;
    CardView cardView;

    public MyViewHolder(@NonNull View itemView) {
        super(itemView);

        imageView = itemView.findViewById(R.id.category_image);
        title = itemView.findViewById(R.id.category_title);
        progressBar = itemView.findViewById(R.id.progressbar);
        cardView = itemView.findViewById(R.id.card_view);
    }
}
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
xmlns:app="http://schemas.android.com/apk/res-auto">

<RelativeLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <ImageView
        android:layout_width="100dp"
        android:layout_height="100dp"
        android:layout_alignParentLeft="true"
        android:layout_alignParentTop="true"
        android:background="@drawable/bg_3" />

    <ImageView
        android:layout_width="100dp"
        android:layout_height="100dp"
        android:layout_alignParentTop="true"
        android:layout_alignParentRight="true"
        android:background="@drawable/bg_2" />

    <ImageView
        android:layout_width="100dp"
        android:layout_height="100dp"
        android:layout_alignParentRight="true"
        android:layout_alignParentBottom="true"
        android:background="@drawable/bg_1" />

    <ImageView
        android:layout_width="100dp"
        android:layout_height="100dp"
        android:layout_alignParentLeft="true"
        android:layout_alignParentBottom="true"
        android:background="@drawable/graphe" />

</RelativeLayout>

<RelativeLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="#99FFFFFF">

</RelativeLayout>


<androidx.recyclerview.widget.RecyclerView
    android:id="@+id/category_rv"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    >

</androidx.recyclerview.widget.RecyclerView>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"

android:layout_height="wrap_content">

<androidx.cardview.widget.CardView
    android:id="@+id/card_view"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:padding="10dp"
    app:cardCornerRadius="15dp"
    app:cardElevation="4dp"
    app:cardUseCompatPadding="true">

    <RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_margin="10dp">

        <ImageView
            android:id="@+id/category_image"
            android:layout_width="90dp"
            android:layout_height="90dp"
            android:scaleType="fitXY" />

        <ProgressBar
            android:id="@+id/progressbar"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_centerVertical="true" />

        <TextView
            android:id="@+id/category_title"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentEnd="true"
            android:layout_alignParentRight="true"
            android:layout_centerInParent="true"
            android:text="Food"
            android:textSize="18dp"
            android:textStyle="bold" />
    </RelativeLayout>
</androidx.cardview.widget.CardView>
        mAdapter = new CategoryAdapter(getCatList(), getContext(), "Category");
        RecyclerView.LayoutManager mLayoutManager = new LinearLayoutManager(getContext(), LinearLayoutManager.VERTICAL, false);
        recyclerView.setLayoutManager(mLayoutManager);
        recyclerView.setItemAnimator(new DefaultItemAnimator());
        recyclerView.setAdapter(mAdapter);
        mAdapter.notifyDataSetChanged();