Кликабельная ложь в карточном Android не может работать - PullRequest
0 голосов
/ 21 октября 2019

У меня есть просмотр карты в программе повторного просмотра, если на него ответили, больше нельзя нажать, я пытаюсь использовать isclickable false, но все еще можно нажать

это мой код

val answer = kategori.answer
    if(answer.equals("answered")){


 holder.card_kategori.setCardBackgroundColor(Color.parseColor("#EF9A9A"))
        holder.card_kategori.setEnabled(false)
        holder.card_kategori.setClickable(false)
    }else{
        holder.card_kategori.setClickable(true)
        holder.card_kategori.setEnabled(true)
    }

XML

<?xml version="1.0" encoding="utf-8"?>
<android.support.v7.widget.CardView 
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:card_view="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="60dp"
    card_view:cardCornerRadius="6dp"
    android:id="@+id/card_kategori"
    android:foreground="?android:attr/selectableItemBackground"
    card_view:cardElevation="3dp"
    card_view:cardUseCompatPadding="true"
    card_view:cardPreventCornerOverlap="false">

    <TextView
        android:id="@+id/kategori_soal"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_weight="4"
        android:padding="10dp"
        android:layout_gravity="center"
        android:text="Approval Layout"
        android:textSize="@dimen/textsize_big"
        android:textStyle="bold"
        android:fontFamily="@font/lato"/>
</android.support.v7.widget.CardView>

Ответы [ 2 ]

1 голос
/ 21 октября 2019

Вы должны использовать isClickable & isEnabled

Matcher isClickable ()Возвращает сопоставление, совпадающее с представлениями, которые можно нажимать.

Matcher isEnabled () Возвращает средство сопоставления, которое соответствует активированным представлениям.

Наконец

if(answer.equals("answered")){

         holder.card_kategori.setCardBackgroundColor(Color.parseColor("#EF9A9A"))
         holder.card_kategori.isEnabled=false
         holder.card_kategori.isClickable = false
    }else{
         holder.card_kategori.isClickable = true
        holder.card_kategori.isEnabled=true
    }
0 голосов
/ 21 октября 2019

Вы можете использовать метод ниже для вашей работы:

fun View.setAllEnabled(enabled: Boolean) {
isEnabled = enabled
if (this is ViewGroup) children.forEach { child -> 
child.setAllEnabled(enabled) 
}
}

Объясните:

вы должны получить все дочерние элементы вашего зрения и установить кликабельность всех из них false / true этот метод helpвы за все дети и установите кликабельность на то, что вы хотите.

есть второй способ для вас:

вы можете использовать набор на клик в представлении реселлера только тогда, когда вы хотите, это руководствоспособ, но будет работать для вас.

держите меня в курсе вашей проблемы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...