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