3

安卓工作室 3.6

在 xml 布局中,我有这个:

 <com.google.android.material.card.MaterialCardView
                android:id="@+id/cardPaymentCardView"
                style="@style/cardViewStyle"
                android:layout_width="0dp"
                android:layout_height="0dp"
                app:checkedIcon="@drawable/ic_credit_card_outline_select"
                app:layout_constraintBottom_toBottomOf="parent"
                app:layout_constraintEnd_toEndOf="parent"
                app:layout_constraintStart_toStartOf="parent"
                app:layout_constraintTop_toTopOf="parent" />

要打开/关闭检查状态,我使用它(在我的活动中)

dataBinding.cardPaymentCardView.isChecked = !dataBinding.cardPaymentCardView.isChecked

它工作正常。好的。

但是我需要直接在xml中设置检查状态。像这样:

android:checked_state="true"

但我得到编译错误

4

2 回答 2

3

没有提供切换到检查状态的默认方式,客户端必须在卡上调用 setChecked(boolean)

支票卡

卡片实现 Checkable 接口。在默认样式@style/Widget.MaterialComponents.CardView 中,选中状态显示选中图标并更改覆盖颜色。没有提供切换到检查状态的默认方式,客户端必须在卡上调用 setChecked(boolean)。还提供了 OnCheckedChangeListener 的 Setter。

MaterialCard查看文档

于 2019-10-31T13:18:54.203 回答
2

有一种toggle方法MaterialCardView

例子:

cardPaymentCardView.setOnClickListener {
    cardPaymentCardView.toggle()
}

参考:https ://developer.android.com/reference/com/google/android/material/card/MaterialCardView#toggle

于 2020-04-27T15:18:48.813 回答