cardview in gridview not clickable

Viewed 45

i have a problem with cardview cardview in adnroid gridlayout not clickable only general cardview is clickable and the other notclickable

here is xml code

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout 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"
    tools:context=".ui.fragments.CategoriesFragment">


    <TextView
        android:id="@+id/title_view"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerHorizontal="true"
        android:layout_margin="12dp"
        android:text="@string/category"
        android:textColor="#5950E4"
        android:textSize="30sp"
        android:textStyle="bold" />

    <GridLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_below="@id/title_view"
        android:layout_margin="30dp"
        android:columnCount="2"
        android:rowCount="3"
        >


        <androidx.cardview.widget.CardView
            android:id="@+id/genral_category"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_row="0"
            android:layout_rowWeight="1"
            android:layout_column="0"
            android:layout_columnWeight="1"
            app:cardCornerRadius="8dp"
            app:cardElevation="8dp"
            android:clickable="true"
            app:cardUseCompatPadding="true">

            <LinearLayout
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_gravity="center_vertical|center_horizontal"
                android:gravity="center"
                android:orientation="vertical">

                <ImageView
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:src="@drawable/ic_baseline_border_all_24" />

                <TextView
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="General"
                    android:textColor="@color/black"
                    android:textAlignment="center"
                    android:textStyle="bold" />
            </LinearLayout>
        </androidx.cardview.widget.CardView>

        <androidx.cardview.widget.CardView
            android:id="@+id/sports_category"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_row="0"
            android:layout_rowWeight="1"
            android:layout_column="1"
            android:layout_columnWeight="1"
            android:clickable="true"
            app:cardCornerRadius="8dp"
            app:cardElevation="8dp"
            app:cardUseCompatPadding="true"
            >

            <LinearLayout
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_gravity="center_vertical|center_horizontal"
                android:gravity="center"
                android:duplicateParentState="true"
                android:orientation="vertical">

                <ImageView
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:src="@drawable/ic_baseline_sports_soccer_24" />

                <TextView
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="Sports"
                    android:textColor="@color/black"
                    android:textAlignment="center"
                    android:textStyle="bold" />
            </LinearLayout>
        </androidx.cardview.widget.CardView>

        <androidx.cardview.widget.CardView
            android:id="@+id/technology_category"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_row="1"
            android:layout_rowWeight="1"
            android:layout_column="0"
            android:clickable="true"
            android:layout_columnWeight="1"
            app:cardCornerRadius="8dp"
            app:cardElevation="8dp"
            app:cardUseCompatPadding="true">

            <LinearLayout
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_gravity="center_vertical|center_horizontal"
                android:gravity="center"
                android:orientation="vertical">

                <ImageView
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:src="@drawable/ic_baseline_technology_24" />

                <TextView
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="Technology"
                    android:textAlignment="center"
                    android:textColor="@color/black"
                    android:textStyle="bold" />
            </LinearLayout>
        </androidx.cardview.widget.CardView>

        <androidx.cardview.widget.CardView
            android:id="@+id/business_category"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_row="1"
            android:layout_rowWeight="1"
            android:layout_column="1"
            android:layout_columnWeight="1"
            android:clickable="true"
            app:cardCornerRadius="8dp"
            app:cardElevation="8dp"
            app:cardUseCompatPadding="true">

            <LinearLayout
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_gravity="center_vertical|center_horizontal"
                android:gravity="center"
                android:orientation="vertical">

                <ImageView
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:src="@drawable/ic_baseline_business_24" />

                <TextView
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="Business"
                    android:textAlignment="center"
                    android:textColor="@color/black"
                    android:textStyle="bold" />
            </LinearLayout>
        </androidx.cardview.widget.CardView>


        <androidx.cardview.widget.CardView
            android:id="@+id/health_categity"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_row="2"
            android:layout_rowWeight="1"
            android:layout_column="0"
            android:layout_columnWeight="1"
            android:clickable="true"
            app:cardCornerRadius="8dp"
            app:cardElevation="8dp"
            app:cardUseCompatPadding="true">

            <LinearLayout
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_gravity="center_vertical|center_horizontal"
                android:gravity="center"
                android:orientation="vertical">

                <ImageView
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:src="@drawable/ic_baseline_healing_24" />

                <TextView
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="Health"
                    android:textAlignment="center"
                    android:textColor="@color/black"
                    android:textStyle="bold" />
            </LinearLayout>
        </androidx.cardview.widget.CardView>

        <androidx.cardview.widget.CardView
            android:id="@+id/science_category"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_row="2"
            android:layout_rowWeight="1"
            android:layout_column="1"
            android:layout_columnWeight="1"
            app:cardCornerRadius="8dp"
            app:cardElevation="8dp"
            android:clickable="true"
            app:cardUseCompatPadding="true">

            <LinearLayout
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_gravity="center_vertical|center_horizontal"
                android:gravity="center"
                android:orientation="vertical">

                <ImageView
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:src="@drawable/ic_baseline_science_24" />

                <TextView
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="Science"
                    android:textAlignment="center"
                    android:textColor="@color/black"
                    android:textStyle="bold" />
            </LinearLayout>

        </androidx.cardview.widget.CardView>
    </GridLayout>

</RelativeLayout>

xml

i have a problem with cardview cardview in adnroid gridlayout not clickable only general cardview is clickable and the other notclickable

here is xml code

1 Answers

For my case, it is working absolutely fine.

I did not change a single line of XML code

Here is my Kotlin code:

class TestActivityXml : AppCompatActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_test)

        val generalCard = findViewById<CardView>(R.id.genral_category)
        val sportsCard = findViewById<CardView>(R.id.sports_category)
        val techCard = findViewById<CardView>(R.id.technology_category)
        val businessCard = findViewById<CardView>(R.id.business_category)
        val healthCard = findViewById<CardView>(R.id.health_categity)
        val scienceCard = findViewById<CardView>(R.id.science_category)

        generalCard.setOnClickListener {

            Toast.makeText(this, "Hello from general", Toast.LENGTH_SHORT).show()

        }

        sportsCard.setOnClickListener {

            Toast.makeText(this, "Hello from sports", Toast.LENGTH_SHORT).show()

        }

        techCard.setOnClickListener {

            Toast.makeText(this, "Hello from tech", Toast.LENGTH_SHORT).show()

        }
        
        businessCard.setOnClickListener {

            Toast.makeText(this, "Hello from business", Toast.LENGTH_SHORT).show()

        }

        healthCard.setOnClickListener {

            Toast.makeText(this, "Hello from health", Toast.LENGTH_SHORT).show()

        }

        scienceCard.setOnClickListener {

            Toast.makeText(this, "Hello from science", Toast.LENGTH_SHORT).show()

        }


    }
}
Related