1

문제가 있습니다. ContextualActionBar를 여는 MULTI_CHOICE 수신기가있는 ListView가 있습니다. 이 목록의 각 항목에 대해 저는 루트 레이아웃에서 backround를 설정했습니다. 이것은 XML입니다 :Android CAB listview state_selected 및 state_pressed

<item android:drawable="@color/light_blue_alpha" 
     android:state_activated="true"/> 

<item android:drawable="@color/light_blue" 
     android:state_pressed="true"/> 

<item android:drawable="@drawable/card_background"/> 

이 경우 기본 배경은 카드 레이아웃 (기본적으로 흰색)입니다. 항목을 누르면 배경이 전체 밝은 파란색으로 표시됩니다. 활성화되면 (CAB 선택을 통해) 배경은 0.5 알파의 옅은 파란색입니다.

이것은 무엇입니까 : 나는 CAB을 시작합니다. CAB 중에 새 항목을 선택하면 항목이 배경을 light_blue (눌렀을 때)으로 변경합니다. 손가락을 떼면 기본 배경이 card_background으로 바뀝니다. 몇 밀리 초 후에 활성화되어 다시 light_blue_alpha으로 변경됩니다.

그래서 기본적으로 이런 종류의 청백색이 깜박입니다. 내가 성취하고자하는 것은 흰색 배경 거래를 "제거"하는 것입니다. 예를 들어 Gmail 앱이 내가하고 싶은 일을 정확히 수행하는 것을 볼 수 있습니다.

어떻게 달성 할 수 있습니까? 고맙습니다!!

편집 : 나는 루트 listSelector로 모든 것을 옮겨 보았습니다. 이것은 셀렉터입니다.

<item android:state_pressed="true" android:drawable="@color/light_blue"/> 
<item android:state_activated="true" android:drawable="@color/light_blue_alpha"/> 
<item android:drawable="@android:color/transparent"/> 

또한 true로 설정하고 누른 배경이 올바르게 적용됩니다. 그러나 state_activated하지 않습니다! CAB을 시작하면 항목이 기본 배경으로 돌아갑니다. 왜 state_activated 배경을 사용하지 않습니까 ??

+0

'무슨 일이 일어나고있는가'와 '무엇을 원하는가?'라고 붙일 수 있니? :) – Gattsu

+0

맞아. 하지만 난 그걸 할 수있어. 문제는 아이템에서 손가락을 떼면 항목이 기본 배경으로 돌아가고 몇 밀리 초 후에 활성화되어 활성화 된 배경으로 이동한다는 것입니다. 손가락 해제 효과를 비활성화하거나 숨기려고합니다. 항목이 눌러 진 배경에서 활성화 된 배경으로 가야합니다. 직접 – edoardotognoni

답변

0

은 selected_position이라는 어댑터에서 하나의 변수를 취하고이 변수에서 선택된 위치 값을 할당합니다. GET보기 방법에 어댑터

에 대한

전화 notifydatasetchanged 방법은

경우 (selected_position == 위치) { 변경 목록 항목의 다시 땅 색상 } 다른 { 세트의 기본과 같은 조건을 넣어 배경색 }

희망이 있습니다.

+0

mmh .. 정말로 자바 코드를 사용해야합니까? 내가 어떤 해결책을 찾지 못한다면 나는 이걸 가지고 갈 것이다. – edoardotognoni