Android_关于子控件和父控件的事件响应问题

原文地址

http://blog.csdn.net/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_关于子控件和父控件的事件响应问题)