0

number picker selection divider를 사용자 정의하고 싶었습니다. 내가 정의 드로어 블을 생성NumberPicker Material 스타일 사용자 정의 선택 Divider

number picker selection divider

는 번호 선택 도구 선택 분할에 사용합니다.

숫자 선택기 재질 스타일을 상속 한 사용자 지정 재질 스타일을 만들었습니다.

<style name="MyNumberPickerTheme" parent="@android:style/Widget.Material.NumberPicker"> 
    <item name="colorControlNormal ">#2e7d32</item> 
    <item name="android:background">#69f0ae</item> 
    <item name="selectionDivider">@drawable/my_number_picker_divider</item> 
</style> 

그러나 selectionDivider 속성이 인식되지 않습니다. 사용자 지정 선택기를 설정하기 위해 숫자 선택기 재질 스타일에 사용자 지정 드로어 블을 추가하려면 어떻게해야합니까?

+0

이 https://stackoverflow.com/questions/20148671/android-how-to-change-the-color-of-the-datepicker-divider/20291416#20291416을 확인하십시오. – Raghunandan

+0

그건 유용하지 않습니다. 변경하고자하는 선택 구분선의 색상이 아닙니다. 번호 선택 도구의 선택 구분자로 사용할 드로어 블을 만들었습니다. 그러나 selectionDivider 속성이 컴파일 오류가 발생하는 것으로 인식되지 않으므로 번호 선택기에 지정할 수 없습니다. android : selectionDivider same issue. –

+0

내가 시도하지 않은 드로어 블을 설정할 수 있습니다. 하지만 게시 된 링크에는 리플렉션을 사용하는 답변이 있으며 라이브러리도 제안됩니다. 답변을 살펴 봅니다. 그에 맞게 수정하십시오. – Raghunandan

답변

0

이 작업을 수행하는 쉬운 방법이없는 것처럼 보입니다. 이 경우에는 This StackOverflow solution만으로 충분합니다. 다른 독자를 위해 여기에 답변을 복사/붙여 넣기하겠습니다.

private void setDividerColor(NumberPicker picker, Drawable customDrawable) { 

    java.lang.reflect.Field[] pickerFields = NumberPicker.class.getDeclaredFields(); 
    for (java.lang.reflect.Field pf : pickerFields) { 
     if (pf.getName().equals("mSelectionDivider")) { 
      pf.setAccessible(true); 
      try { 
       pf.set(picker, customDrawable); 
      } catch (IllegalArgumentException e) { 
       e.printStackTrace(); 
      } catch (Resources.NotFoundException e) { 
       e.printStackTrace(); 
      } 
      catch (IllegalAccessException e) { 
       e.printStackTrace(); 
      } 
      break; 
     } 
    } 
} 

그리고 지금 어딘가에 코드에서, 당신은 setDividerColor 호출 할 수 있습니다

(피커, drawableObject)는 디바이더의 색상을 설정합니다.

+0

선택 구분선의 색상을 변경하려고하지 않았습니다. 선택 구분선으로 사용자 정의 드로어 블 (다른 모양)을 사용하고 싶습니다. –

+0

drawable 지원에 대한 답변을 업데이트했습니다. –