2011-11-15 5 views
1

다른 선택 색과 항목 배경을 갖도록 목록보기를 수정했습니다. 애플리케이션 또는 작업 배경 (단색, PNG, 그라디언트)에서 맞춤 색상을 설정할 때까지 모든 작업이 완벽하게 수행됩니다. 캐시 색상 힌트를 사용하여 시도했지만 작동하지 않는 것 같습니다.사용자 지정 배경 재정의 설정 ListView 사용자 지정

나는 어제 전체적으로 거의 Google에 있었고 대답을 찾지 못했습니다. 내가 가장 가까이 온 것은 이것이다. thread :

신사는 이것이 설계된 것이라고 생각하는 것 같습니다. 만약 내가 전체 목록보기의 배경색을 변경할 수있는 방법을 듣고 싶습니다 (나는 비어있을 수있는 목록보기의 영역에 대해 이야기하고 있습니다).

일부 코드를 보려면 here을 찾으십시오.

감사 마니

답변

2

나는 당신이 무엇을 요구에 완전히 명확하지, 그래서 내가 어떻게 함께 작업을 재생하는 모든 항목을 설명하자, 아마도 당신의 대답이 어딘가에있을 것입니다.

  • 이 목록 선택이
  • 이 전체의 ListView의 배경이
  • 기본적으로

    , 그들이 그려집니다

    1. 목록 항목의 배경 : 당신이 당신의 질문에 기술 한 세 가지 시각적 요소가 있습니다 그 계층 구조에서 (1)은 (2)의 맨 위에 그려지며, (2)는 (3)의 꼭대기에 그려진다. 사용자 지정이없는 ListView에서 항목 2 & 3은 투명하고 선택자는 여러 상태가있는 drawable입니다. 이 때문에 투명도로 인해 Activity 또는 ListView 아래에있는 View에 적용하는 모든 사용자 정의 색상이 표시됩니다.

      이러한 것들이 그려지는 순서를 보면, 한 요소를 사용자 정의하는 것이 다른 요소에 대해 수행 된 모든 사용자 정의를 어떻게 덮을 지 알 수 있습니다. 예를 들어, 목록의 각 항목에 불투명 한 배경을 설정하고 listSelector 속성을 사용하면 목록이 완전히 덮여집니다 (drawSelectorOnTop이 설정되지 않은 경우 ... 개발자가 상태를 가진 드로어 블을 제공 한 이유는 무엇입니까? 배경 항목).

      ListView는 다른보기이며 전체 ListView에 배경을 제공하고 그 아래에 표시되는보기를 숨기려면 해당 background 특성을 직접 설정할 수 있습니다. 사용자 지정 목록 항목 배경을 설정하는 경우에도 ListView가 모든 요소를 ​​표시 할 수있을만큼 충분히 커서 그 아래에 추가 공간이있는 경우를 제외하고는 표시되지 않습니다.

      cacheColorHint의 직업은 각 목록 항목에 투명하지 않고 단색 배경 (스크롤하는 동안)을 그려 넣음으로써 스크롤 성능을 최적화하는 것입니다. ListView 또는 Activity 아래에 단색 배경을 설정하면이 값은 같은 색으로 설정되어야합니다. 배경이 그래디언트 또는 이미지 인 경우이 최적화를 사용할 수 없으므로 투명하게 설정해야합니다 (예 : # 0000)

      희망이 도움이됩니다.

    +0

    시간을내어 주셔서 대단히 감사합니다. 리스트 뷰가 렌더링되는 순서는 _background_, _seperators_, _selector_ 그리고 _list items_입니다. 아이템 배경과 선택자를 투명하게 처리하도록주의를 기울였습니다.이제는 다른 문제가 있습니다. 모든 것이 예상대로 작동하고, 내 사용자 정의 배경이 원하는대로 렌더링됩니다. 그러나 캐시 색상 힌트가 설정되어 있지 않습니다. 그래서 기술적으로, 내가 읽은 것에서부터 일을해서는 안된다. 나는 조금 혼란 스럽다. –

    관련 문제