#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"