2013-03-06 6 views
1

두 개의 다른 행 레이아웃을 사용하는 목록보기가 있습니다. 하나는 날짜 헤더를 표시하고 다른 하나는 해당 날짜에 대한 작업 세트를 표시하는 것입니다. 사용자가 강조 표시하면 날짜 헤더를 강조 표시하고 싶지 않습니다. 즉, 날짜 머리글을 포함하는보기의 배경이 어떤 식 으로든 변경되는 것을 원하지 않습니다.뷰를 포커스가 맞지 않게 만들기

나는 현재로서는 다음과 같은 짓을 :

V 날짜 헤더를 포함하는 레이아웃에서 팽창 전망이다
v.setEnabled(false); 
v.setClickable(false); 
v.setFocusableInTouchMode(false); 

.

원래의 배경이 흰색인데 손가락이 사용자의 손가락과 접촉하지 않습니다. 처음에는 날짜 헤더보기에 파란색 배경이 나타납니다. 위의 코드 뒤에 배경이 회색으로 변경되었습니다. 나는 터치해도 배경이 흰색으로 변하기를 원하지 않습니다.

+0

프레스 상태에 관계없이 항상 배경을 흰색으로 유지하려면 xml에서 배경을 '@ 색상/흰색'으로 설정할 수 있습니다. –

답변

0

사용자 지정 어댑터에서 isEnabled(int position) 메서드를 재정의해야합니다. 공식 API 페이지에서 :

지정된 위치의 항목이 구분 기호가 아닌 경우 true를 반환합니다. 구분 기호는 이며 선택 불가능하고 클릭 할 수없는 항목입니다. 위치가 유효하지 않은 경우 결과는 지정되지 않습니다. 이 경우 빠른 실패를 위해 ArrayIndexOutOfBoundsException을 throw해야합니다.

관련 문제