2010-12-08 6 views
0

리스트 뷰가 있고 행 뷰에는 이미지 뷰와 텍스트 뷰의 2 개의 자식 뷰가 있습니다. 이미지보기가 실행 가능합니다. 두 자식 뷰 모두 선택기가 있습니다. 내 문제는 텍스트보기를 누르면 이미지보기도 선택된다는 것입니다. 행 뷰가 선택한 상태를 자식에게 전송하는 것과 같습니다. 각 하위보기가 독립적으로 선택되도록하려면 어떻게 제거 할 수 있습니까?리스트 뷰 행 자식 뷰 선택기

안부, Gratzi 목록보기 사용 android:listSelector="@null"에 대한 XML에서

답변

0

. 이 경우 어댑터에서 작동하지 않으면이를 달성하기 위해 2 가지 방법을 무시할 수 있습니다.

 @Override 
     public boolean isEnabled(int position) 
     { 
      return false; 
     } 

     @Override 
     public boolean areAllItemsEnabled() 
     { 
      return false; 
     } 

이렇게하면 행에 대한 선택이 제거됩니다. 그러나 하이라이트가 별도로 발생하기 위해서는 statelist를 작성하거나 수동으로 관리해야합니다.

+0

첫 번째 기능이 작동하지 않습니다. 두 번째는 당신이 말한 것과 같습니다. 목록 행에 대한 선택을 제거하고 이미지보기 만 선택 가능하고 실행 가능합니다. 재미있는 점은 이미지보기가 상태를 변경하고 텍스트보기가 변경된다는 것입니다. 이미지보기 setOnClickListener 메서드가 호출 된 때문에 생각합니다. 내가 원하는 것은 : 2 개의 분리 된 액션 이미지 뷰 &리스트 행; 2 개의 분리 된 선택자 : 심상 전망 & 본문 전망. 이것이 가능한가? – Gratzi

0

텍스트보기의 수신기를 만들고 텍스트보기 수신기의 목록보기 수신기에서 코드를 이동하여 작업을 수행했습니다. 이런 식으로 눌린 이벤트는 행 뷰에 도달하지 않으며 행은 이미지 뷰에 위임하지 않습니다. 필자는 목록 행을 만들 때마다 (매번 bindView 메서드가 호출 될 때마다) 텍스트 뷰의 수신기를 만들어야하기 때문에이 솔루션에 만족하지는 못했지만이 솔루션을 찾는 것이 가장 좋습니다.