이 블로그 검색

2015년 7월 24일 금요일

Android: OnClick Event 의 하위 뷰(View) 전달

 LinearLayout, RelativeLayout 등 레이아웃에 OnClickListener를 걸어, 레이아웃을 클릭했을 때 무언가 작동을 하게끔 할때가 있다. 이때 레이아웃의 클릭(터치) 이벤트는 레이아웃 아래의 하위 뷰에 전달이 되어서 그 하위 뷰의 영역만큼 레이아웃의 OnClick Event가 발생하지 않는다....

보통 아래와 같은 case  이다..


<LinearLayout    
 android:layout_width="0dp"    
 android:layout_height="match_parent"    
 android:id="@+id/llimgBtnShowMenu"    
 android:gravity="bottom|center_horizontal"    
 android:layout_weight="1">

    <ImageButton        
      android:id="@+id/imgBtnShowMenu"        
      android:clickable="false"
      android:layout_width="13.33dp"        
      android:layout_height="10.67dp"        
      android:layout_marginBottom="18dp"        
      android:background="@drawable/ico_menu" />
</LinearLayout>


  
  이것을 막기 위해서는 하위 뷰의 clickable = false 로 해서 클릭 이벤트가 전달이 안되게 하면 레이아웃 전체에 무리없이 클릭 이벤트가 먹는다...