android - 如何在卡片视图中将卡片变灰?
问题描述
我有一个动态列出一组卡片的卡片视图。我为此使用了recyclerview。现在我想通过灰显卡片或类似的东西来禁用卡片(基于价值)。这是包含卡片视图的布局
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical">
<android.support.v7.widget.CardView
android:layout_width="112dp"
android:layout_height="140dp"
android:layout_margin="10dp"
android:clickable="true"
android:focusable="true"
android:scaleType="fitXY">
<RelativeLayout
android:layout_width="100dp"
android:layout_height="150dp"
android:padding="8dp">
<ImageView
android:id="@+id/appIcon"
android:layout_width="match_parent"
android:layout_height="62dp"
android:padding="5dp"
tools:ignore="VectorDrawableCompat" />
<TextView
android:id="@+id/name"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/appIcon"
android:layout_centerInParent="true"
android:gravity="center"
android:textAppearance="@style/Base.TextAppearance.AppCompat.Small"
android:textColor="@drawable/selector"
android:textSize="10dp"
android:textStyle="bold" />
<TextView
android:id="@+id/appVersion"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_alignParentEnd="true"
android:layout_marginBottom="5dp"
android:layout_marginEnd="1dp"
android:text="version 0.0"
android:textAppearance="@style/Base.TextAppearance.AppCompat.Small"
android:textSize="8dp" />
</RelativeLayout>
</android.support.v7.widget.CardView>
</LinearLayout>
我找到了一些相关的查询,并尝试使用选择器并将每个字段而不是整个卡片变灰。
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_enabled="true" android:color="@color/colorAppName" />
<item android:state_enabled="false" android:color="@color/colorPrimary" />
</selector>
在我的课堂上(Adapter.kt)
name = itemView.findViewById(R.id.name) as TextView
if(value==true)
{
name.isEnabled=false
}
但我想禁用整张卡。请帮忙
解决方案
添加android:background="@drawable/selector"
到您的RelativeLayout
或LinearLayout
. 这将适用于启用和禁用。
注意:- 这与问题无关,但如果您遵循。这对你有好处。
我们
if(booleanVariable)
直接比较,而不是像比较if(booleanVariable==true)
。
推荐阅读
- python - 在python中发送telnet命令
- c# - Classlibrary 输出类型中的 Npgsql 程序集错误
- javascript - 过滤firebase数据库中的数据时遇到问题
- django - 在 Elastic Beanstalk 上启动 SQS celery worker
- c# - 如何禁用打开 WPF 弹出窗口
- amazon-web-services - Amazon lex 匹配完全不相似的 Intent
- r - 是否可以将神经网络从 R 导出到 Excel?
- anaconda - 在 Conda 环境中导入系统模块
- mysql - 如何在多个表中计数?
- spring-boot - 在 Spring Boot 应用程序的应用程序属性中隐藏密码