2017-05-02 12 views
0

저는 프로그래밍 방식으로 테마 체크 박스와 라디오 버튼을 사용해야하는 프로젝트에서 작업하고 있습니다.안드로이드 Lollipop 버그의 프로그래밍 방식 테마 CheckBox 및 RadioButton

다, 당신은 비디오 (품질에 대한 죄송) 볼 수있는 버튼을

https://drive.google.com/file/d/0B6JcrJ_vY1HnOXF6Yk4yT29ZUTA/view?usp=sharing

을 확인했다 내가 프로그래밍 방식으로 설정할 때이 될 버튼의 상태는 반전 곳 롤리팝을 제외하고 버튼을 잘 작동 내가 그들을 클릭했을 때 올바르게 작동하지만, "모든 것"버튼을 프로그래밍 방식으로 설정하면 막대 사탕에서만 놀랠 수 있습니다.

다음은 색조 코드

public static void setupCheckBox(AppCompatCheckBox checkBox) { 

     int colorOn = getCurrentAccentColor(); 
     int colorOff = ContextCompat.getColor(checkBox.getContext(), R.color.grey); 
     int colorDisabled = 0xFFAAAAAA; 
     ColorStateList buttonStates = new ColorStateList(
       new int[][]{ 
         new int[]{android.R.attr.state_checked}, 
         new int[]{-android.R.attr.state_enabled}, 
         new int[]{} 
       }, 
       new int[]{ 
         colorOn, 
         colorDisabled, 
         colorOff 
       } 
     ); 
     checkBox.setSupportButtonTintList(buttonStates); 
    } 

답변

1

입니다 https://issuetracker.google.com/issues/37084519#comment10

AppCompatRadioButton이 그렇게 사용하는 것은 아닙니다 대답을합니다. 올바르게 사용하지 않으면 중단 될 수있는 비공개 API를 사용하고 있습니다.

CompoundButtonCompat.setButtonTintList()를 사용하십시오.