2011-11-22 2 views
0

버튼을 클릭 할 때 배경색이 변경되도록 "drawable/selector"를 사용하여 버튼을 그립니다. 그래서 드로어 블 (selector가 있음)을 사용하여 RelativeLayout의 배경을 정의했습니다. 이 첫 번째 단계는 잘 작동합니다. 레이아웃 객체를 클릭하면 색상이 변경됩니다.선택기를 배경으로 한 안드로이드 레이아웃 및 겹치는 텍스트보기

RelativeLayout에서는 이제 두 개의 독립적 인 동적 텍스트 뷰를 추가합니다. 이 텍스트 뷰는 이제 RelativeLayout의 많은 공간을 사용합니다. 따라서 텍스트 뷰 객체를 클릭하면 상위 레이아웃의 배경이 더 이상 변경되지 않습니다.

그래서 동적 배경 (사용자의 클릭을 처리하여 색상이 바뀌기 때문에)과 레이아웃이 겹쳐져 있고 위에 겹쳐있는보기가있는 방법이 있습니까?

relativeLayout의 배경은 위에서 아래로가는 그라디언트입니다.

<RelativeLayout 
    android:id="@+id/titleBackground" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:orientation="vertical" 
    android:background="@drawable/button_background" 
    android:gravity="left|center_vertical" 
    android:clickable="true" 
    > 

    <TextView android:id="@+id/title" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:textColor="@color/light_text" 
     android:gravity="left|center_vertical" 
     android:singleLine="true" 
     android:ellipsize="end" 
     /> 

    <TextView android:id="@+id/subtitle" 
     android:layout_below="@id/title" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:textColor="@color/light_text_alpha" 
     android:gravity="left|center_vertical" 
     android:textSize="@dimen/secondarylisttext_size" 
     android:scrollHorizontally="true" 
     android:singleLine="true" 
     android:ellipsize="end" 
     /> 

</RelativeLayout> 

답변

0

귀하의 텍스트 뷰는 클릭 이벤트를 캡처하고 백그라운드에서 관련 이벤트로 전달되지 않습니다. 두 텍스트 뷰에 onTouchListener를 추가하고 모션 이벤트의 'ACTION_DOWN, ACTION_UP'을 기반으로 터치 리스너 내부의 상대 레이아웃에 대한 배경을 설정해야합니다.

텍스트 뷰가 클릭 이벤트를 전달할 수있는 방법이있을 수 있습니다. 그러나 그것에 대해 확실하지 않은 Im. 위의 방법은 단지 하나의 솔루션입니다. 다른 사람들도있을 수 있습니다.

0

blessenm이 말한 것처럼 모든 것은 TextView에 달려 있습니다. 클릭하면 부모 선택기가 더 이상 계산되지 않습니다. 물론 TextView에서도 선택기를 사용할 수 있습니다.

관련 문제