原文地址
http://blog.youkuaiyun.com/tianjf0514/article/details/7533154
当父控件中有子控件的时候,并且父控件和子控件都有事件处理(比如单击事件)。这时,点击子控件,父控件的单击事件就无效了。如下图:
比如一个LinearLayout里面有一个子控件TextView,但是TextView的大小没有LinearLayout大
①如果LinearLayout和TextView都设置了单击事件,那么
- 点击TextView区域的时候,触发的是TextView的事件,
- 点击TextView以外的区域的时候,还是触发的LinearLayout的事件。
②如果LinearLayout设置了单击事件,而TextView没有设置单击事件的话,那么
- 不管单击的是TextView区域,还是TextView以外的区域,都是触发的LinearLayout的单击事件
如果LinearLayout的大小和TextView一样的话,那么
①如果LinearLayout和TextView都设置了单击事件,那么
- 只有TextView的单击事件有效
②如果LinearLayout设置了单击事件,而TextView没有设置单击事件的话,那么
触发的是LinearLayout的单击事件
/***************************************
* 个人附加 *
***************************************/
顺便提一下父控件和子控件状态跟随
当父控件是布局而子控件是控件时,如果要设置点击效果,可以在父布局里面加上android:clickable="true" ,在子控件里面设置android:clickable="false",并设置状态跟随父布局android:duplicateParentState="true",至于效果,则随自己写吧
本文探讨了Android中父控件和子控件同时设置点击事件时的行为差异,包括不同情况下哪些事件会被触发,以及如何通过设置属性实现点击效果的状态跟随。
774

被折叠的 条评论
为什么被折叠?



