android ListView 自定义item 点击变色冲突

listView的一个item是一个嵌套布局layout1和layout2,2在1的里面,当我在适配器中设置了layout2的setBackgroundResource后... listView的一个item 是一个嵌套布局 layout1和layout2,2在1的里面,当我在适配器中设置了layout2的setBackgroundResource后,在点击此item时,只有除了layout2以外的layout1部分会变色,如何实现点了item以后,整个layout1会变色?(仅仅只是普通的item点击变色,手指离开后会变回来) 展开
 我来答
幻想流逝
推荐于2016-10-13 · TA获得超过1743个赞
知道大有可为答主
回答量:642
采纳率:75%
帮助的人:555万
展开全部

1.在res/values目录下创建colors.xml文件,name和颜色值自己定,主要就是你layout1和layout2的背景色,还有点击时的颜色

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <color name="white">#ffffffff</color>
    <color name="black">#ff000000</color>
</resources>


2.在res/drawable文件加下创建两个xml资源文件,名字自定,比如item_layout1_bg.xml和item_layout2_bg.xml,然后按以下设置颜色(drawable里引用你上面设置的颜色)

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
   <!--点击时的颜色-->
   <item android:state_pressed="true" android:drawable="@color/black" />
   <!-- 默认颜色 -->
   <item android:drawable="@color/white"/>
</selector>


3.在你Item布局中,设置layout1和layout2的background属性,引用上面的资源文件

<LinearLayout
    android:id="@+id/layout1"
    (其他属性略)
    android:background="@drawable/item_layout1_bg"
    >

layout2同上


最后把你代码里给layout1,layout2布局setBackgound一类的方法删掉就行了(不删会覆盖上面的颜色设置,导致不起作用)

大雅新科技有限公司
2024-11-19 广告
这方面更多更全面的信息其实可以找下大雅新。深圳市大雅新科技有限公司从事KVM延长器,DVI延长器,USB延长器,键盘鼠标延长器,双绞线视频传输器,VGA视频双绞线传输器,VGA延长器,VGA视频延长器,DVI KVM 切换器等,优质供应商,... 点击进入详情页
本回答由大雅新科技有限公司提供
rjchen00
2015-09-30 · TA获得超过157个赞
知道小有建树答主
回答量:232
采纳率:0%
帮助的人:126万
展开全部
不应该啊。。要不你试试将setBackgroundResource的东西设置到layout1里看看会怎样?我觉得只有除了layout2以外的layout1部分会变色那应该是设置错位置了呃?。。
追问
我这个item  , 只想让layout2是根据state变色, 点击之后,只有layout1减去layout2的部分变色。如果我设置layout1.setBackgroundResource(),则点了什么都不会变了
追答
唔,我也不知道你具体在xml里怎么写的,你看看这篇东西对你有用不
http://blog.csdn.net/love_Javc_you/article/details/44749289
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式