Development Tip

Android ListView 선택기 색상

yourdevel 2020. 10. 24. 11:57
반응형

Android ListView 선택기 색상


안녕하세요,

Android의 ListView에 대해 두 가지 질문이 있습니다.

  1. listview의 초점이 맞춰진 행의 색상을 어떻게 얻을있습니까? 문서에 따라 내가 찾고있는 것을 제공해야하는 ListView.getSelector () 메서드 를 사용하려고 시도 했지만 가능한 경우 색상을 검색하는 방법을 모르는 Drawable 개체를 제공하고 있습니다. ..).

  2. 어떻게 수 설정 목록보기의 초점을 맞춘 행의 색상을? 여기에서는 목록보기에서 setSelector () 메서드 를 사용하여 ColorDrawable 개체를 전달하려고했지만 그 결과 목록보기의 전체 배경이 해당 색으로 칠해져 있습니다. 물론이야...

감사!


목록 선택기 드로어 블은 다음 StateListDrawable과 같습니다. 각 상태에 대한 여러 드로어 블에 대한 참조가 포함되어 있습니다. 선택, 포커스, 눌림, 비활성화 등 목록이 될 수 있습니다.

를 사용하여 드로어 블을 검색 할 수 있지만 getSelector()에서 특정 항목 Drawable검색 할 수 있다고 생각하지 않으며 어쨌든 StateListDrawable에서 직접 프로그래밍 방식으로 색상을 검색하는 것도 가능하지 않습니다 ColorDrawable.

색상 설정은 StateListDrawable위에서 설명한대로 필요합니다 . 다음 android:listSelector과 같이 XML로 드로어 블을 정의하는 속성을 사용하여 목록에이를 설정할 수 있습니다 .

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
  <item android:state_enabled="false" android:state_focused="true"
        android:drawable="@drawable/item_disabled" />
  <item android:state_pressed="true"
        android:drawable="@drawable/item_pressed" />
  <item android:state_focused="true"
        android:drawable="@drawable/item_focused" />
</selector>

추가하려면 : 드로어 블 대신 색상을 사용하는 경우 @Christopher 의 답변 은 API 7/8에서 작동하지 않습니다 (@Jonny의 올바른 주석에 따라). (내 테스트에서 Christopher에 따라 드로어 블을 사용하면 잘 작동합니다)

색상을 사용할 때 2.3 이하FIX 는 다음 과 같습니다 .

@Charles Harley에 따르면, 2.3 이하에서는 목록 항목을 색상으로 채우면 색상이 전체 목록으로 흘러 나오는 버그가 있습니다. 그의 수정은 shape원하는 색상을 포함 하는 드로어 블 을 정의 하고 색상 대신 사용하는 것입니다.

색상을 선택기로 사용하고 Android 2를 대상으로하는 경우 (또는 적어도 Android 2를 허용하는 경우)이 링크를 보는 것이 좋습니다.

참고 URL : https://stackoverflow.com/questions/2038040/android-listview-selector-color

반응형