昨天測(cè)試的時(shí)候预侯,發(fā)現(xiàn)一個(gè)小bug,我給子控件加了選擇器背景變色峰锁,但是點(diǎn)擊父布局萎馅,子控件背景也變色了。
需求:
在ListView的列表中虹蒋,item點(diǎn)擊進(jìn)入詳情糜芳。它的下半部分是一個(gè)顯示回復(fù)區(qū)域,至多顯示3條記錄魄衅,最下邊顯示“查看全部”字樣峭竣,需求是當(dāng)手指按下“查看全部”字樣時(shí),背景變色晃虫。點(diǎn)擊其他非“查看全部”字樣皆撩,“查看全部”背景不變。
錯(cuò)誤描述:
當(dāng)按下非“查看字樣”區(qū)域時(shí)哲银,“查看全部”背景也變了顏色扛吞。
思考:
我認(rèn)為是因?yàn)锳ndroid觸摸事件分發(fā)機(jī)制導(dǎo)致的錯(cuò)誤,因?yàn)榉职l(fā)是從父布局依次傳遞到子控件的荆责。因?yàn)楦覆季钟悬c(diǎn)擊事件滥比,點(diǎn)擊也是觸摸事件的的一種,so做院,它層層傳遞就導(dǎo)致了“查看全部”背景變色了盲泛。
解決辦法:
雖然我當(dāng)時(shí)費(fèi)盡腦筋,解決的效果都不理想键耕。其實(shí)解決辦法很簡(jiǎn)單寺滚,給“查看全部”單獨(dú)設(shè)置同樣的點(diǎn)擊事件就可以了。
感悟:
多么痛的領(lǐng)悟屈雄,我曾經(jīng)那么辛苦玛迄。