前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Android开发随手记录-实现ListView单选设置item背景颜色和字体颜色

Android开发随手记录-实现ListView单选设置item背景颜色和字体颜色

作者头像
巫山老妖
发布2018-07-23 10:22:31
1.5K0
发布2018-07-23 10:22:31
举报
文章被收录于专栏:小巫技术博客小巫技术博客

开发遇到以下需求,点击列表项改变背景和字体颜色,效果如下图:

我们可以看到左边是一个listView,点击选中其中一项就会变成跟其他项不一样的背景颜色,字体颜色也会不一样,这样的效果怎么实现?

先从ListView属性出发,设置它为单选:

代码语言:javascript
复制
android:choiceMode="singleChoice"
代码语言:javascript
复制
<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:

代码语言:javascript
复制
<?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”

代码语言:javascript
复制
<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”

代码语言:javascript
复制
<?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单选的方法,大家可以参考一下。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2015-08-31,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 小巫技术博客 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档