2014-02-19 3 views
1

listview에 대한 사용자 정의 항목 레이아웃을 작성합니다. 레이아웃에는 많은 위젯이 있고 일부에는 고유 한 클릭 리스너가 있습니다.descendantFocusability = "blocksDescendants"설정 후 listview의 행에있는 textview를 클릭 할 수 없습니다.

행을 클릭하면 가끔 listview의 onListItemClick이 작동하지만 때때로 그렇지 않습니다.

시간을 들여 검색 한 결과, 레이아웃의 루트에 android : descendantFocusability = "blocksDescendants"을 설정하는 방법을 찾았습니다. 그것은 작동하지만 단 하나의 textview가 작동하지 않습니다 (클릭 가능, fucusable attr 시도). 목록의 어댑터에서 textview의 onClickListener를 설정하면 작동합니다. 그러나 그것은 자연이 아니며, 그것을 해결하는 방법을 아는 사람이 있습니까?

btw, 다른 도구를 구별 할 수있는 방법이 있습니까? 자, 내가 뭘 (텍스트 뷰 제외)를 클릭해도, 전체 행의 배경 선택기가 변경되었습니다.

많은 감사!

// 내 목록 행 레이아웃 루트

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:descendantFocusability="blocksDescendants" 
android:padding="@dimen/medium" 
android:orientation="horizontal" 
android:layout_width="match_parent" 
android:layout_height="match_parent"> 

// 끔찍한 텍스트 뷰는

<TextView 
     android:id="@+id/text" 
     android:textColor="@android:color/secondary_text_light" 
     android:textColorLink="@android:color/holo_blue_dark" 
     android:layout_marginTop="@dimen/small" 
     android:textAppearance="@android:style/TextAppearance.DeviceDefault" 
     android:layout_below="@id/nick" 
     android:layout_alignLeft="@id/nick" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" /> 

갱신

텍스트 뷰는 일부 링크 기능을 제공하기 위해 Linkify를 사용합니다.

+0

이 둥둥-A-tatRatatouille @ 텍스트 뷰의 XML –

+0

false로 재산을 포커스와 focusableOnTouch 모드 속성과 클릭 porperty을 설정 한 것과 같은 :-) 발생 희망 나는 그것들을 모두 false로 설정하지만, textview를 클릭하면,리스트의''onListItemClick''은 여전히 ​​호출되지 않습니다. – longkai

+0

또한 선형 레이아웃을 클릭 할 수 없도록 설정하고 코드에서 설정하십시오. 즉, getView 메소드에서 코드를 통해 false로 속성을 설정하십시오. –

답변

4

나는 약간의 시간을 보냈지만, 나는 둘 다 해결했다.

  1. 첫 번째. 사용자 정의 된 listview의 레이아웃에 코드에 autolink 또는 Linkify으로 설정된 텍스트 뷰가있는 경우 textview의 click 이벤트가 목록의 행에 영향을 미치지 않습니다. 자신의 TextViewonTouchEvent 메서드로 확장해야합니다. 그것을 보시오 here

  2. 초. 사용자 정의 된 listview의 루트 노드 인 android:descendantFocusability="blocksDescendants"을 설정 한 다음 자신의 onClickListener을 가진 위젯에 android:clickable="true"을 설정하면 그것은 저에게 적합합니다.

는 사람들을 위해 유용 당신이

+0

[+1] ....이 정보는 나를 도왔습니다. – Devrath