У меня есть код флажка в файле макета CardView. CardView имеет белый фон. Обычно я думаю, что снятый флажок - это черный квадрат. В моем макете нет пустого флажка. Я вижу только белый фон CardView (верхний CardView на скриншоте). Когда я нажимаю на крайнюю правую область CardView, где отформатирован код флажка, появляется зеленый флажок (внизу CardView на снимке экрана). Что мне здесь не хватает? введите описание изображения здесь.

Файл макета:

<LinearLayout

xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:background="@color/background4main"  >

<android.support.v7.widget.CardView
    xmlns:card_view="http://schemas.android.com/apk/res-auto"
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/singlecard_view1"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    card_view:cardBackgroundColor="@android:color/white"
    card_view:cardCornerRadius="6dp"
    android:orientation="horizontal"
    android:layout_margin="4dp">

    <RelativeLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:background="?android:selectableItemBackground"  >

    <TextView
        android:id="@+id/cardBlankText2"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentTop="true"
        android:text="todo"
        android:textStyle="bold"
        android:textColor="@android:color/black"
        android:textAppearance="?android:attr/textAppearanceLarge"
        android:textSize="20sp"  />

    <TextView
        android:id="@+id/cardBlankText3"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_below="@+id/cardBlankText2"
        android:text="note1"
        android:textStyle="bold"
        android:textColor="@android:color/black"
        android:textAppearance="?android:attr/textAppearanceLarge"
        android:textSize="20sp"  />

    <CheckBox
        android:id="@+id/chkSelected"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentRight="true"
        android:layout_alignParentEnd="true"
        android:layout_centerVertical="true"  />

    </RelativeLayout>

</android.support.v7.widget.CardView>

</LinearLayout>

Adapter file:
...
public class ListViewHolder extends RecyclerView.ViewHolder {

    TextView cardBlankText2;
    TextView cardBlankText3;
    CheckBox chkSelected;

    public ListViewHolder(View itemView) {
        super(itemView);

        cardBlankText2 = (TextView)itemView.findViewById(R.id.cardBlankText2);
        cardBlankText3 = (TextView)itemView.findViewById(R.id.cardBlankText3);
        chkSelected = (CheckBox) itemView.findViewById(R.id.chkSelected);
    }
...
@Override
public void onBindViewHolder(final ListViewHolder holder, final int position) {

        holder.cardBlankText2.setText(dbList.get(position).getTodo());
        holder.cardBlankText3.setText(dbList.get(position).getNote1());
        holder.chkSelected.setChecked(dbList.get(position).isSelected());
        holder.chkSelected.setTag(dbList.get(position));
}
2
AJW 19 Апр 2016 в 07:55

3 ответа

Лучший ответ

Возможные причины:

  • Ваш флажок может быть белого цвета.

  • Это ВИДИМОСТЬ может исчезнуть

Также добавьте атрибут toLeftOf для текстовых представлений, чтобы они не перекрывались с флажком. Проверьте свою тему, чтобы узнать цвет флажка. Если это не помогает, вы можете установить возможность рисования ?android:attr/listChoiceIndicatorMultiple для неотмеченного состояния

1
Ravi Teja 19 Апр 2016 в 05:10

Используйте код ниже:

<android.support.v7.widget.AppCompatCheckBox
                android:id="@+id/settings_notification_checkbox"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:checked="true"
                app:buttonTint="@color/colorPrimary"/>

Вместо этого :

<CheckBox
        android:id="@+id/check"
        android:button="@drawable/customdrawablecheckbox"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" />
5
Narendra 9 Фев 2018 в 12:42

Возможность рисования customcheckbox.xml:

  <?xml version="1.0" encoding="utf-8"?>
   <selector  xmlns:android="http://schemas.android.com/apk/res/android">
   <item android:state_checked="false" android:drawable="@drawable/unchecked_drawable" />
   <item android:state_checked="true" android:drawable="@drawable/checked_drawable" />
   <item android:drawable="@drawable/unchecked_drawable" /> <!-- default state -->
  </selector>

И ваш xml файл:

<CheckBox
android:id="@+id/check"
android:button="@drawable/customdrawablecheckbox"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
2
Ramesh Kumar 19 Апр 2016 в 05:12