2016-07-06 3 views
2

내 안드로이드 응용 프로그램에서 내 설정 화면에 대해 내 응용 프로그램을 "com.android.support:preference-v14:23.4.0"으로 마이그레이션하고 있습니다. Theme.appCompat 테마를 사용하고 있습니다. Android 6 휴대 전화에서는 모든 것이 잘 작동합니다.Android 5 및 Android 4 휴대 전화에서 구분선이 올바르지 않습니다.

하지만 Android 5 및 Android 4 휴대 전화에서는 구분선이 "검은 색"인 것으로 나타났습니다. 어두운 테마를 사용 했으므로 흰색이어야합니다 (일부 알파 포함). 안드로이드 6 폰은 그렇지만 안드로이드 5와 안드로이드 4는 그렇지 않습니다.

나는 디바이더 색상을 바꾸려고 노력했지만 그렇게 할 수 없었습니다. 나는 또한 인터넷에서 해결책을 찾았으나 아무 것도 작동하지 않는 것 같다. 다른 사람이 나를 도와 줄 수 있습니까

답변

2

PreferenceFragmentCompat 클래스에서 제공하는 setDivider 메서드를 사용할 수 있습니다. 그러면 디바이더의 스타일이 바뀝니다. 하지만 그 방법을 사용하려면보기가 생성되었는지 확인해야합니다. 그렇지 않으면 nullPointer 오류가 발생합니다. 가장 좋은 방법은 onViewCreated에서 스타일을 변경하는 것입니다.

예 : 귀하의 답변에 대한

@Override 
public void onViewCreated(View view, @Nullable Bundle savedInstanceState) { 
    super.onViewCreated(view, savedInstanceState); 
    setDividerStyle(); 
} 

private void setDividerStyle() { 
    ColorDrawable test = new ColorDrawable(getActivity().getResources().getColor(R.color.your color)); 
    setDivider(test); 
    setDividerHeight(1); 
} 
1

Android 6 및 Android 5 (및 4)에 다른 테마를 사용하고있는 것 같습니다. 이것을 확인하셨습니까?

+0

감사합니다. 나는 단지 하나의 styles.xml 파일을 가지고 있기 때문에 모두 같은 주제를 사용합니다. – Sushil

+0

테마의 부모는 무엇을 사용하고 있습니까? 예를 들어 Android 5.0 이상에서만 자료가 제공됩니다. –

+0

테마의 상위 항목은 Theme.AppCompat입니다. 실제로 안드로이드 5.0 이상의 자료가 소개되었습니다. 그 이유는 낮은 버전에서 marerial 디자인을 지원하기 위해 appcompat librray를 사용하고 있기 때문입니다. 물자 디자인 주제의 대부분은 좋게 보인다 그러나 분배자는 잘 오르고 있지 않다. – Sushil