CardView 或 MaterialTextView OnClickListener 不工作

CardView or MaterialTextView OnClickListener not working

我在 LinearLayout 布局中使用了 cardview 和 material textview,如下所示

<LinearLayout
                        android:layout_marginTop="10dp"
                        android:layout_width="match_parent"
                        android:layout_height="50dp"
                        android:weightSum="2">

                        <com.google.android.material.card.MaterialCardView
                            android:id="@+id/card_date"
                            android:layout_width="0dp"
                            android:clickable="true"
                            android:layout_weight="1"
                            android:layout_marginEnd="2dp"
                            android:layout_height="match_parent"
                            android:clipToPadding="true"
                            app:cardCornerRadius="5dp"
                            android:focusable="true">

                        <com.google.android.material.textview.MaterialTextView
                            android:layout_weight="1"
                            android:id="@+id/editText_schedule_date"
                            android:layout_width="match_parent"
                            android:layout_height="match_parent"
                            android:layout_gravity="center"
                            android:gravity="center"
                            android:background="@color/transparent"
                            android:text="@string/date_post"
                            android:focusableInTouchMode="false"
                            android:singleLine="true"
                            android:textColor="@color/textView_hint_upload"
                            android:theme="@style/editText_style"
                            android:textSize="16sp" />
                        </com.google.android.material.card.MaterialCardView>



                        <com.google.android.material.card.MaterialCardView
                            android:layout_weight="1"
                            android:layout_width="0dp"
                            android:layout_marginStart="2dp"
                            android:layout_height="match_parent"
                            android:clipToPadding="true"
                            app:cardCornerRadius="5dp">

                        <com.google.android.material.textfield.TextInputEditText

                            android:id="@+id/editText_schedule_time"
                            android:layout_width="match_parent"
                            android:layout_height="match_parent"
                            android:layout_gravity="center"
                            android:layout_marginLeft="10dp"
                            android:layout_marginRight="10dp"
                            android:background="@color/transparent"
                            android:hint="@string/time_post"
                            android:gravity="center"
                            android:inputType="time"
                            android:singleLine="true"
                            android:textColor="@color/textView_upload"
                            android:textColorHint="@color/textView_hint_upload"
                            android:theme="@style/editText_style"
                            android:textSize="16sp" />
                        </com.google.android.material.card.MaterialCardView>
                    </LinearLayout>

我正在尝试在我的 activity 中使用它,如下所示

private MaterialCardView card_date;

然后像下面这样创建

card_date = findViewById(R.id.card_date);
card_date.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Log.e("called","this card");
            }
        });

但是它不起作用。我也尝试过 textview onclick 侦听器,但也没有用。让我知道是否有人可以帮助我解决这个难题。谢谢!此 LinearLayout 之外的代码同样可以正常工作。谢谢!

请删除android:clickable="true"

 <com.google.android.material.card.MaterialCardView
  android:id="@+id/card_date"
  android:layout_width="0dp"
  android:layout_weight="1"
  android:layout_marginEnd="2dp"
  android:layout_height="match_parent"
  android:clipToPadding="true"
  app:cardCornerRadius="5dp"/>

                 

您必须设置android:clickable="false"

<com.google.android.material.card.MaterialCardView
                        android:id="@+id/card_date"
                        android:layout_width="0dp"
                        android:clickable="false"/>

我用过

android:layout_weight="1"

在导致问题的文本视图中。我已经删除它并且它已经解决了。 谢谢!