'RecyclerView catch catch onItemClickListener

I have 2 RecyclerViews that uses the same XML file to inflate views through the adapter. One RecyclerView does catch clicks while the other doesn't. The first RecyclerView is on another fragment and the code is similar to the second RecyclerView. I have tried a lot of changes to the XML file(MaterialCardView) such as removing clickable attribute or changing the layout_weight to be 1 on the card but all of them didn't work. Also, I can't understand why it would work only on 1 with the same settings on the other.

Here is the code for the second part which is not working:

Fragment - section of matter

 list = view.findViewById(R.id.user_display_details_rv); //Getting the RecyclerView
        list.setHasFixedSize(true);
        int numOfColumns = 2;
        list.setLayoutManager(new GridLayoutManager(getContext(), numOfColumns,GridLayoutManager.VERTICAL,false));
        adapter = new UserDisplayDetailsAdapter(viewModel,getLayoutInflater());
        list.setAdapter(adapter);
        list.addItemDecoration(new RecyclerView.ItemDecoration() {
            @Override
            public void getItemOffsets(@NonNull Rect outRect, @NonNull View view, @NonNull RecyclerView parent, @NonNull RecyclerView.State state) {
                outRect.set(5,20,5,20);
            }
        });

        adapter.setOnItemClickListener((v,pos)->{
            String pollId = Objects.requireNonNull(viewModel.getUserFilledPolls().get(pos).getPollId());
            Navigation.findNavController(v).navigate(FragmentUserDisplayDetailsDirections.actionFragmentUserDisplayDetailsToFragmentOtherUserPoll(pollId,userId));
        });

Adapter

public class UserDisplayDetailsAdapter extends RecyclerView.Adapter<UserDisplayDetailsHolder> {

    UserDisplayDetailsViewModel viewModel;
    LayoutInflater layoutInflater;
    OnItemClickListener onItemClickListener;

    public UserDisplayDetailsAdapter(UserDisplayDetailsViewModel viewModel, LayoutInflater layoutInflater) {
        this.viewModel = viewModel;
        this.layoutInflater = layoutInflater;
    }

    @NonNull
    @Override
    public UserDisplayDetailsHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
        LayoutInflater inflater = (LayoutInflater) MyApplication.getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
        View view = inflater.inflate(R.layout.poll_list_square,parent,false);
        return new UserDisplayDetailsHolder(view,onItemClickListener);
    }

    @Override
    public void onBindViewHolder(@NonNull UserDisplayDetailsHolder holder, int position) {
        Poll poll = Objects.requireNonNull(viewModel.getUserFilledPolls().get(position));
        holder.bind(poll);
    }

    @Override
    public int getItemCount() {
        if(viewModel.getUserFilledPolls() == null){
            return 0;
        }
        return viewModel.getUserFilledPolls().size();
    }

    public void setOnItemClickListener(OnItemClickListener listener){
        this.onItemClickListener = listener;
    }
}

Holder

public class UserDisplayDetailsHolder extends RecyclerView.ViewHolder {

    MaterialTextView pollsName;
    ShapeableImageView icon;

    public UserDisplayDetailsHolder(@NonNull View itemView, OnItemClickListener onItemClickListener) {
        super(itemView);
        pollsName = itemView.findViewById(R.id.homescr_poll_pollName);
        icon=itemView.findViewById(R.id.homescr_poll_icon);
        itemView.setOnClickListener(v->{
            int pos = getAdapterPosition();
            onItemClickListener.onItemClick(v,pos);
        });
    }

    public void bind(Poll poll) {
        pollsName.setText(poll.getPollName());
    }
}

Common XML

<?xml version="1.0" encoding="utf-8"?>

    <com.google.android.material.card.MaterialCardView
        android:id="@+id/homescr_btn_poll"
        xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:app="http://schemas.android.com/apk/res-auto"
        android:layout_weight="1"
        android:clickable="true"
        android:focusable="true"
        android:layout_width="110dp"
        android:layout_height="90dp"
        android:layout_gravity="center"
        app:cardBackgroundColor="@color/primeOrng"
        app:cardCornerRadius="20dp"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintHorizontal_bias="0.5"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent"
        app:strokeWidth="2dp"
        android:theme="@style/Theme.MaterialComponents.Light">


    <androidx.appcompat.widget.LinearLayoutCompat
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:orientation="vertical"
            android:paddingTop="5dp">

            <LinearLayout
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_gravity="top"
                android:orientation="horizontal">

                <com.google.android.material.imageview.ShapeableImageView
                    android:id="@+id/homescr_poll_mainImage"
                    android:layout_width="60dp"
                    android:layout_height="40dp"
                    android:scaleType="fitStart"
                    app:strokeWidth="0dp"
                    app:srcCompat="@drawable/ic_poll" />

                <Space
                    android:id="@+id/homescr_poll_space"
                    android:layout_width="10dp"
                    android:layout_height="wrap_content" />

                <com.google.android.material.imageview.ShapeableImageView
                    android:id="@+id/homescr_poll_icon"
                    android:layout_width="wrap_content"
                    android:layout_height="30dp"
                    android:layout_gravity="end"
                    app:srcCompat="@drawable/ic_feed_arrow"
                    app:strokeWidth="0dp" />

            </LinearLayout>
            <LinearLayout
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:layout_gravity="bottom"
                android:orientation="horizontal"
                android:paddingLeft="8dp"
                android:paddingRight="8dp">

                <com.google.android.material.textview.MaterialTextView
                    android:id="@+id/homescr_poll_pollName"
                    android:layout_width="match_parent"
                    android:layout_height="match_parent"
                    android:fontFamily="sans-serif-medium"
                    android:text="@string/poll_name"
                    android:textAppearance="?attr/textAppearanceHeadline6"
                    android:textColor="@color/white"
                    android:textSize="14dp"
                    android:textStyle="bold" />

            </LinearLayout>
        </androidx.appcompat.widget.LinearLayoutCompat>

    <com.google.android.material.imageview.ShapeableImageView
        android:id="@+id/homescr_poll_doneImage"
        android:layout_width="60dp"
        android:layout_height="50dp"
        android:visibility="gone"
        app:srcCompat="@drawable/done_nobg" />

</com.google.android.material.card.MaterialCardView>

Working Fragment XML(Catching clicks on RecyclerView)

<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout 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="@color/black"
    app:cardElevation="0dp"
    app:strokeColor="@color/stroke_color">
    tools:context=".FragmentHomeScreen">

    <com.google.android.material.imageview.ShapeableImageView
        android:id="@+id/homeScreen_logo"
        android:layout_width="306dp"
        android:layout_height="160dp"
        android:src="@drawable/logo__nobg_2"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent" />

    <com.google.android.material.textview.MaterialTextView
        android:id="@+id/homeScr_text_title"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_marginStart="50dp"
        android:fontFamily="sans-serif-black"
        android:gravity="center"
        android:text="Hello, "
        android:textColor="@color/white"
        android:textSize="32dp"
        android:textStyle="bold"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toBottomOf="@+id/homeScreen_logo" />

    <com.google.android.material.textview.MaterialTextView
        android:id="@+id/homeScr_text_name"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_marginEnd="80dp"
        android:fontFamily="sans-serif-black"
        android:gravity="start"
        android:text="User Name"
        android:maxLines="1"
        android:textColor="@color/white"
        android:textSize="32dp"
        android:textStyle="bold"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toEndOf="@+id/homeScr_text_title"
        app:layout_constraintTop_toBottomOf="@+id/homeScreen_logo" />

    <androidx.constraintlayout.widget.ConstraintLayout
        android:id="@+id/home_layout_const"
        android:layout_width="350dp"
        android:layout_height="250dp"
        android:layout_marginStart="10dp"
        android:layout_marginTop="30dp"
        android:layout_marginEnd="10dp"
        android:foregroundGravity="center_horizontal"

        android:paddingLeft="10dp"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toBottomOf="@+id/homeScr_text_name">

        <androidx.swiperefreshlayout.widget.SwipeRefreshLayout
            android:id="@+id/home_layout_poll_refresh"
            android:layout_width="wrap_content"
            android:layout_height="match_parent"
            app:layout_constraintBottom_toBottomOf="parent"
            app:layout_constraintEnd_toEndOf="parent"
            app:layout_constraintStart_toStartOf="parent"
            app:layout_constraintTop_toTopOf="parent">

            <androidx.recyclerview.widget.RecyclerView
                android:id="@+id/home_poll_rv"
                android:layout_width="wrap_content"
                android:layout_height="match_parent"
                android:scrollbarSize="3dp"
                android:scrollbarThumbVertical="@color/white"


                android:scrollbars="vertical"
                app:layoutManager="androidx.recyclerview.widget.GridLayoutManager"


                />
        </androidx.swiperefreshlayout.widget.SwipeRefreshLayout>

    </androidx.constraintlayout.widget.ConstraintLayout>

    <com.google.android.material.button.MaterialButton
        android:id="@+id/homescr_btn_line"
        android:layout_width="350dp"
        android:layout_height="10dp"
        android:layout_marginStart="10dp"
        android:layout_marginEnd="10dp"
        android:layout_marginBottom="90dp"
        android:backgroundTint="#978F8F"
        app:cornerRadius="100px"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent" />

    <com.google.android.material.button.MaterialButton
        android:id="@+id/homescr_btn_feed"
        android:layout_width="140dp"
        android:layout_height="wrap_content"

        android:layout_marginBottom="10dp"
        android:backgroundTint="@color/black"
        android:drawableTop="@drawable/ic_feed"
        android:fontFamily="sans-serif-medium"
        android:text="FEED"
        android:textColor="@color/primeOrng"
        android:textSize="14dp"
        android:textStyle="bold"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toStartOf="@+id/homescr_btn_map"
        app:layout_constraintHorizontal_bias="0.5"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toBottomOf="@+id/homescr_btn_line"
        app:strokeColor="@color/black"
        app:strokeWidth="2dp" />

    <com.google.android.material.button.MaterialButton
        android:id="@+id/homescr_btn_map"
        android:layout_width="140dp"
        android:layout_height="wrap_content"

        android:layout_marginBottom="10dp"
        android:backgroundTint="@color/black"
        android:drawableTop="@drawable/ic_map"
        android:fontFamily="sans-serif-medium"
        android:text="@string/map"
        android:textColor="@color/primeOrng"
        android:textSize="14dp"
        android:textStyle="bold"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintHorizontal_bias="0.5"
        app:layout_constraintStart_toEndOf="@+id/homescr_btn_feed"
        app:layout_constraintTop_toBottomOf="@+id/homescr_btn_line"
        app:strokeColor="@color/black"
        app:strokeWidth="2dp" />

</androidx.constraintlayout.widget.ConstraintLayout>

NOT Working Fragment XML(NOT Catching clicks on RecyclerView)

<?xml version="1.0" encoding="utf-8"?>
<ScrollView 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="@color/black"
    android:scrollbars="vertical"
    android:scrollbarSize="3dp"
    android:scrollbarStyle="insideInset"
    tools:context=".feed.FragmentUserDisplayDetails">

    <androidx.constraintlayout.widget.ConstraintLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:paddingTop="10dp">

        <com.google.android.material.imageview.ShapeableImageView
            android:id="@+id/user_display_details_img_main"
            android:layout_width="150dp"
            android:layout_height="150dp"
            android:layout_marginStart="8dp"
            android:layout_marginTop="15dp"
            android:scaleType="centerCrop"
            app:layout_constraintEnd_toEndOf="parent"
            app:layout_constraintHorizontal_bias="0.5"
            app:layout_constraintStart_toStartOf="parent"
            app:layout_constraintTop_toTopOf="parent"
            app:shapeAppearanceOverlay="@style/ShapeAppearanceOverlay.App.CornerSize50Percent"
            app:srcCompat="@drawable/avatar"
            app:strokeColor="@color/white"
            app:strokeWidth="1dp" />

        <com.google.android.material.textview.MaterialTextView
            android:id="@+id/user_display_details_txt_username"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_marginTop="10dp"
            android:fontFamily="sans-serif-black"
            android:gravity="center"
            android:text="User Name"
            android:textColor="@color/white"
            android:textSize="32dp"
            android:textStyle="bold"
            app:layout_constraintEnd_toEndOf="parent"
            app:layout_constraintStart_toStartOf="parent"
            app:layout_constraintTop_toBottomOf="@+id/user_display_details_img_main" />


        <androidx.appcompat.widget.LinearLayoutCompat
            android:id="@+id/user_dusplay_details_layout"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginStart="20dp"
            android:layout_marginTop="20dp"
            android:layout_marginEnd="20dp"
            android:orientation="vertical"
            app:layout_constraintEnd_toEndOf="parent"
            app:layout_constraintHorizontal_bias="0.0"
            app:layout_constraintStart_toStartOf="parent"
            app:layout_constraintTop_toBottomOf="@+id/user_display_details_txt_username">


            <com.google.android.material.textview.MaterialTextView
                android:id="@+id/user_display_details_txt_email"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_marginTop="5dp"

                android:drawableStart="@drawable/ic_account"
                android:drawablePadding="10dp"
                android:fontFamily="sans-serif-light"
                android:gravity="left"
                android:paddingLeft="20dp"
                android:text="@string/email"
                android:textColor="@color/white"
                android:textSize="28dp"
                android:textStyle="bold" />

            <com.google.android.material.textview.MaterialTextView
                android:id="@+id/user_display_details_txt_address"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_marginTop="15dp"
                android:drawableStart="@drawable/ic_white_location"

                android:drawablePadding="10dp"
                android:fontFamily="sans-serif-light"
                android:gravity="left"
                android:maxLines="2"
                android:paddingLeft="20dp"
                android:text="address"
                android:textColor="@color/white"
                android:textSize="28dp"
                android:textStyle="bold" />

            <com.google.android.material.textview.MaterialTextView
                android:id="@+id/user_display_details_txt_education"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_marginTop="15dp"

                android:drawableStart="@drawable/ic_education"
                android:drawablePadding="10dp"
                android:fontFamily="sans-serif-light"
                android:gravity="left"
                android:paddingLeft="20dp"
                android:text="education"
                android:textColor="@color/white"
                android:textSize="28dp"
                android:textStyle="bold" />

            <com.google.android.material.textview.MaterialTextView
                android:id="@+id/user_display_details_txt_gender"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_marginTop="15dp"


                android:drawableStart="@drawable/sex_icon"
                android:drawablePadding="10dp"
                android:fontFamily="sans-serif-light"
                android:gravity="left"
                android:paddingLeft="20dp"
                android:text="SEX"
                android:textColor="@color/white"
                android:textSize="28dp"
                android:textStyle="bold" />

            <androidx.constraintlayout.widget.ConstraintLayout
                android:id="@+id/user_display_details_poll_layout"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_marginTop="20dp"
                android:background="@drawable/textviewbg">


                <androidx.recyclerview.widget.RecyclerView
                    android:id="@+id/user_display_details_rv"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:padding="5dp"
                    app:layout_constraintBottom_toBottomOf="parent"
                    app:layout_constraintEnd_toEndOf="parent"
                    app:layout_constraintStart_toStartOf="parent"
                    app:layout_constraintTop_toTopOf="parent"
                    app:layoutManager="androidx.recyclerview.widget.GridLayoutManager"/>


            </androidx.constraintlayout.widget.ConstraintLayout>


        </androidx.appcompat.widget.LinearLayoutCompat>

        <com.google.android.material.button.MaterialButton
            android:id="@+id/feed_back_btn"
            style="@style/Widget.MaterialComponents.Button.TextButton"
            android:layout_width="wrap_content"
            android:layout_height="50dp"
            android:layout_marginStart="20dp"
            android:layout_marginTop="30dp"
            android:backgroundTint="@color/black"
            android:fontFamily="sans-serif"
            android:text="BACK "
            android:textSize="20sp"
            app:cornerRadius="35dp"
            app:layout_constraintStart_toStartOf="parent"
            app:layout_constraintTop_toBottomOf="@+id/user_dusplay_details_layout"
            app:strokeColor="@color/primeOrng"
            app:strokeWidth="1dp" />

        <ProgressBar
            android:id="@+id/user_display_details_progress_bar"
            style="?android:attr/progressBarStyle"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            app:layout_constraintBottom_toBottomOf="parent"
            app:layout_constraintEnd_toEndOf="parent"
            app:layout_constraintHorizontal_bias="0.5"
            app:layout_constraintStart_toStartOf="parent"
            app:layout_constraintTop_toTopOf="parent" />


    </androidx.constraintlayout.widget.ConstraintLayout>
</ScrollView>



Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source