이 블로그 검색

2011년 10월 30일 일요일

특정 이미지(뷰)만 셀렉터를 안 먹게 하는 방법

커스텀 리스트 뷰 같은 곳에서
list_detail_item.xml 의 background 속성에 셀렉터를 넣으면
전체가 전부 셀렉터가 먹는다.

이 때  list_detail_item 안의 특정 뷰에는 셀렉터를 안 먹게 할려면
그 이미지만 별도의 셀렉터를 설정해, 그 셀렉터를 setVisibility 에서 Gone 처리 하면 된다.

예컨데,
list_detail_item.xml 에 아래와 같이 여러개의 뷰가 있고, 전체 백그라운데 셀렉터를 넣은 상태에서 이중 View2 만 셀렉터를 안먹게 하려면

android:background="@drawable/list_item_selector"
<View 1>
<View 2>
<View 3>


View2 를 따로 imageView 로 떠서,
View2에 android:background="@drawable/list_item_View2_selector" 라는 셀렉터를 만든 후,
(이 셀렉터는 위의 list_detail_item 셀렉터와 동일하게 해 주면 된다.)
이 셀렉터를 Gone 처리해 주면, 셀렉터가 적용 되지 않는다.
왜냐하면 배경 셀렉터보다 직접 해당 뷰에 해주는 셀렉터가 위에 먹기(우선 순위가 높기) 때문이다. 따라서 해당 뷰에 직접 따로 셀렉터를 해 주면 그 배경이 되는 셀럭터 자체는 무시되는 듯 하다.

 

댓글 없음:

댓글 쓰기