Цвет фона проверяемого вида карты-это применение альфа-основного цвета

#android #android-layout #android-cardview

#Android #android-макет #android-cardview

Вопрос:

Я пытался создать проверяемый вид карты, и код выглядит так

 class MainActivity : AppCompatActivity(R.layout.activity_main) {  override fun onCreate(savedInstanceState: Bundle?) {  super.onCreate(savedInstanceState)  findViewByIdlt;MaterialCardViewgt;(R.id.card).setOnClickListener {  findViewByIdlt;MaterialCardViewgt;(R.id.card).isChecked = !findViewByIdlt;MaterialCardViewgt;(R.id.card).isChecked  }  } }  

Планировка такова

 lt;?xml version="1.0" encoding="utf-8"?gt; lt;LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"  xmlns:app="http://schemas.android.com/apk/res-auto"  android:layout_width="match_parent"  android:layout_height="match_parent"  android:background="@color/black"  android:orientation="vertical"gt;   lt;com.google.android.material.card.MaterialCardView  android:id="@ id/card"  android:layout_width="100dp"  android:layout_height="100dp"  android:layout_margin="20dp"  android:checkable="true"  android:clickable="true"  android:focusable="true"  app:cardBackgroundColor="@color/background_color"  app:checkedIcon="@null"gt;  lt;/com.google.android.material.card.MaterialCardViewgt; lt;/LinearLayoutgt;  

background_color-это

 lt;selector xmlns:android="http://schemas.android.com/apk/res/android"gt;  lt;item android:color="@android:color/black" android:state_enabled="true" android:state_checked="true"/gt;  lt;item android:color="@android:color/white" android:state_enabled="true" android:state_checked="false"/gt;  lt;item android:color="@android:color/black" /gt; lt;/selectorgt;  

Кажется, это функционально работает. Однако, когда статус проверен, он не на 100% черный. Каким-то образом он применяет альфа основного цвета.

введите описание изображения здесь

Это трудно увидеть, но это ясно видно, если я применяю экспозицию вручную с помощью фоторедактора.

введите описание изображения здесь

Как я могу сделать его чисто черным или избежать этой неожиданной альфы?

Ответ №1:

Я нашел решение. Следующий атрибут в cardview перестанет добавлять эту альфа-версию.

 app:cardForegroundColor="@null"