昨天测试的时候,发现一个小bug,我给子控件加了选择器背景变色,但是点击父布局,子控件背景也变色了。
需求:
在ListView的列表中,item点击进入详情。它的下半部分是一个显示回复区域,至多显示3条记录,最下边显示“查看全部”字样,需求是当手指按下“查看全部”字样时,背景变色。点击其他非“查看全部”字样,“查看全部”背景不变。
错误描述:
当按下非“查看字样”区域时,“查看全部”背景也变了颜色。
思考:
我认为是因为Android触摸事件分发机制导致的错误,因为分发是从父布局依次传递到子控件的。因为父布局有点击事件,点击也是触摸事件的的一种,so,它层层传递就导致了“查看全部”背景变色了。
解决办法:
虽然我当时费尽脑筋,解决的效果都不理想。其实解决办法很简单,给“查看全部”单独设置同样的点击事件就可以了。
感悟:
多么痛的领悟,我曾经那么辛苦。