Android开发随手记录-实现ListView单选设置item背景颜色和字体颜色
时间:2022-06-04
本文章向大家介绍Android开发随手记录-实现ListView单选设置item背景颜色和字体颜色,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
开发遇到以下需求,点击列表项改变背景和字体颜色,效果如下图:
我们可以看到左边是一个listView,点击选中其中一项就会变成跟其他项不一样的背景颜色,字体颜色也会不一样,这样的效果怎么实现?
先从ListView属性出发,设置它为单选:
android:choiceMode="singleChoice"
<ListView
android:id="@+id/lv_symptoms"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:scrollbars="none"
android:choiceMode="singleChoice"
android:fadingEdge="none"
android:divider="@null"
android:cacheColorHint="@android:color/transparent"
android:background="@color/main_color"
android:layout_weight="3"/>
然后设置它的item布局的selector:
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:background="@drawable/item_single_choice_selector">
<TextView
android:id="@+id/tv_bodysymptoms"
android:layout_width="match_parent"
android:layout_height="60dp"
android:duplicateParentState="true"
android:gravity="center"
android:text="全部症状"
android:textColor="@drawable/item_text_choice_selector"
android:textSize="14sp" /></LinearLayout>
这里我们设置了item父布局的selector,也设置了textView的textColor,其中要设置TextView的这个属性:android:duplicateParentState=”true”
“item_single_choice_selector”
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true" android:drawable="@drawable/choice_bg_color"/>
<item android:state_selected="true" android:drawable="@drawable/choice_bg_color"/>
<item android:state_activated="true" android:drawable="@drawable/choice_bg_color"/>
<item android:drawable="@drawable/main_color"/></selector>
“item_text_choice_selector”
<?xml version="1.0" encoding="utf-8"?><selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true" android:color="@color/main_color"/>
<item android:state_selected="true" android:color="@color/main_color"/>
<item android:state_activated="true" android:color="@color/main_color"/>
<item android:color="@color/white"/></selector>
这是比较简单实现ListView单选的方法,大家可以参考一下。
- WCF中并发(Concurrency)与限流(Throttling)体系深入解析系列[共7篇]
- AngularJS in Action读书笔记6(实战篇)——bug hunting
- FreeMarker模板开发指南知识点梳理
- WCF技术剖析之二十: 服务在WCF体系中是如何被描述的?
- WCF如何克服HTTP传输协议的局限提供对不同消息传输模式的实现
- H5手游大事件:腾讯上线“微信小游戏”!支持群分享与内购
- 我所理解的Remoting(2):远程对象生命周期的管理[上篇]
- 谈谈分布式事务(Distributed Transaction)[共5篇]
- SQLXML初体验:用XML代替T-SQL来操作数据库
- 自己动手写可视化软件(代码已开源)
- 探秘Tomcat——连接篇
- 微信小游戏正式上线,H5游戏迎新机遇
- WCF技术剖析之三十:一个很有用的WCF调用编程技巧[上篇]
- WCF技术剖析之十八:消息契约(Message Contract)和基于消息契约的序列化
- java教程
- Java快速入门
- Java 开发环境配置
- Java基本语法
- Java 对象和类
- Java 基本数据类型
- Java 变量类型
- Java 修饰符
- Java 运算符
- Java 循环结构
- Java 分支结构
- Java Number类
- Java Character类
- Java String类
- Java StringBuffer和StringBuilder类
- Java 数组
- Java 日期时间
- Java 正则表达式
- Java 方法
- Java 流(Stream)、文件(File)和IO
- Java 异常处理
- Java 继承
- Java 重写(Override)与重载(Overload)
- Java 多态
- Java 抽象类
- Java 封装
- Java 接口
- Java 包(package)
- Java 数据结构
- Java 集合框架
- Java 泛型
- Java 序列化
- Java 网络编程
- Java 发送邮件
- Java 多线程编程
- Java Applet基础
- Java 文档注释
- View的有效曝光监控(下)|ScrollView NestScrollView篇
- 聊聊AbstractProcessor和Java编译流程
- Okhttp如何开启的Http2.0
- PHP Execute Command Bypass Disable_functions
- 聊聊Android编译流程
- Android组件化问题思考
- 最近面试碰到的两道算法题|面试相关
- Thread也会OOM吗?
- RoundCube Webmail邮件正文存储型XSS(CVE-2015-1433)
- 再谈Android Lint
- Android DiffUtil 封装|深拷贝
- [CVE-2014-8959] phpmyadmin任意文件包含漏洞分析
- Android 统计页面渲染时长
- Transform和Task之间有关?| Gradle
- user.ini文件构成的PHP后门