Google은 흑인 공동체를 위한 인종 간 평등을 진전시키기 위해 노력하고 있습니다. Google에서 어떤 노력을 하고 있는지 확인하세요.

환경설정

기기 저장소와 상호작용하거나 UI를 관리할 필요 없이 대화형 설정 화면을 빌드합니다.
최근 업데이트 현재 안정화 버전 다음 버전 후보 베타 버전 알파 버전
2020년 4월 15일 1.1.1 - - -

종속 항목 선언

Preference의 종속 항목을 추가하려면 프로젝트에 Google Maven 저장소를 추가해야 합니다. 자세한 내용은 Google Maven 저장소를 읽어보세요.

다음과 같이 앱 또는 모듈의 build.gradle 파일에 필요한 아티팩트의 종속 항목을 추가합니다.

    dependencies {
        def preference_version = "1.1.1"

        // Java language implementation
        implementation "androidx.preference:preference:$preference_version"
        // Kotlin
        implementation "androidx.preference:preference-ktx:$preference_version"
    }
    

종속 항목에 관한 자세한 내용은 빌드 종속 항목 추가를 참고하세요.

의견

제출하신 의견은 Jetpack을 개선하는 데 도움이 됩니다. 새로운 문제를 발견하거나 라이브러리 개선을 위한 아이디어가 있다면 Google에 알려 주세요. 새 문제를 만들기 전에 이 라이브러리의 기존 문제를 살펴보시기 바랍니다. 별표 버튼을 클릭하여 기존 문제에 투표할 수 있습니다.

새 문제 만들기

자세한 내용은 Issue Tracker 문서를 참고하세요.

버전 1.1.1

버전 1.1.1

2020년 4월 15일

androidx.preference:preference:1.1.1androidx.preference:preference-ktx:1.1.1가 출시되었습니다. 버전 1.1.1에 포함된 커밋을 확인하세요.

버그 수정

  • xml에서 FragmentContainerView를 확장할 때 PreferenceDialogFragmentCompat에서 IllegalStateException이 더 이상 발생하지 않습니다. (b/150051716 참조)

종속 항목 업데이트

  • 이제 Preference가 Fragment 1.2.4에 종속됩니다. (aosp/1277317 참조)
  • preference-ktx 종속 항목은 이제 androidx.core:core-ktx:1.1.0androidx.fragment:fragment-ktx:1.2.4에 종속되므로, 기본 preference 아티팩트의 종속 항목을 미러링하고 전이 종속 항목의 기본 및 -ktx 아티팩트 모두를 preference-ktx 업그레이드로 업데이트할 수 있습니다. (aosp/1277319 참조)

버전 1.1.0

버전 1.1.0

2019년 9월 5일

androidx.preference:preference:1.1.0androidx.preference:preference-ktx:1.1.0가 출시되었습니다. 이 버전에 포함된 커밋은 여기에서 확인할 수 있습니다.

이 버전이 업데이트할 첫 번째 1.1.* 릴리스라면 마지막 안정적인 1.0.0 출시 이후의 큰 변경사항을 간략히 설명한 다음 목록을 참고하세요. 설정 가이드, 샘플 앱Android Dev Summit 대화도 유용할 수 있습니다.

1.0.0 이후 중요 변경사항

  • 프레임워크 Fragment를 사용하는 PreferenceFragment 및 기타 클래스가 지원 중단되었습니다. 대신 PreferenceFragmentCompat 및 기타 *compat 클래스를 사용해야 합니다.
  • 이제 Preference에서 SummaryProvider를 설정하여 Preference가 업데이트되거나 사용자에게 표시될 때마다 요약을 동적으로 구성할 수 있습니다. 자세한 내용은 가이드를 참고하세요.
  • EditTextPreference.OnBindEditTextListener 인터페이스가 추가되었습니다. 이러한 추가를 통해 대화상자가 결합된 후 대화상자에 표시되는 EditText를 맞춤설정할 수 있습니다. 이 기능은 EditTextPreference에서 직접 android:inputType과 같은 속성을 사용하는 직접적인 대체 방법이며 AndroidX 라이브러리에서는 지원되지 않습니다. 자세한 내용은 가이드를 참조하세요.
  • Preference.setCopyingEnabled()가 추가되었습니다. 이에 따라 설정 시 Preference를 길게 누르면 Preference 요약을 복사할 수 있는 컨텍스트 메뉴가 표시됩니다.
  • 머티리얼 사양과 일치하도록 SeekBarPreference 스타일 지정이 업데이트되었습니다. SeekBarPreference에 관한 다른 변경사항은 상세 changelog를 참조하세요.
  • 대량의 버그를 수정하고 스타일을 업데이트하며 API 레벨 호환성을 수정하고 일반적인 QOL을 개선했습니다.

버전 1.1.0-rc01

2019년 7월 2일

androidx.preference:preference:1.1.0-rc01androidx.preference:preference-ktx:1.1.0-rc01가 출시되었습니다. 이 버전에 포함된 커밋은 여기에서 확인할 수 있습니다.

API 변경사항

  • Preference#onInitializeAccessibilityNodeInfo가 지원 중단되었습니다.
  • 이 메서드는 특정 환경설정의 접근성 노드 정보를 프록시 처리했지만 맞춤설정에는 잘못된 레이어입니다. 접근성 정보를 조정하려면 대신 onBindViewHolder를 재정의하고 접근성 정보를 뷰에 직접 추가해야 합니다.

버전 1.1.0-beta01

2019년 6월 5일

androidx.preference:preference:1.1.0-beta01androidx.preference:preference-ktx:1.1.0-beta01가 출시되었습니다. 이 버전에 포함된 커밋은 여기에서 확인할 수 있습니다.

1.1.0 이후 중요 변경사항

이 버전이 업데이트할 첫 번째 1.1.* 출시인 경우 마지막 안정적인 출시 1.1.0 이후의 큰 변경사항이 담긴 간략한 목록이 여기 있습니다. 설정 가이드, 샘플 앱Android Dev Summit 대화도 유용할 수 있습니다.

  • 프레임워크 Fragment를 사용하는 PreferenceFragment 및 기타 클래스가 지원 중단되었습니다. 대신 PreferenceFragmentCompat와 기타 *compat 클래스를 사용해야 합니다.
  • 이제 환경설정에서 SummaryProvider를 설정하여 환경설정이 업데이트되거나 사용자에게 표시될 때마다 요약을 동적으로 구성할 수 있습니다. 자세한 내용은 가이드를 참고하세요.
  • EditTextPreference.OnBindEditTextListener 인터페이스가 추가되었습니다. 이러한 추가를 통해 대화상자가 결합된 후 대화상자에 표시되는 EditText를 맞춤설정할 수 있습니다. 이것은 EditTextPreference에서 직접 android:inputType과 같은 속성을 사용하는 직접적인 대체 방법이며 AndroidX 라이브러리에서는 지원되지 않습니다. 자세한 내용은 가이드를 참조하세요.
  • Preference.setCopyingEnabled()가 추가되었습니다. 이에 따라 설정 시 Preference를 길게 누르면 Preference 요약을 복사할 수 있는 컨텍스트 메뉴가 표시됩니다.
  • SeekBarPreference 스타일 지정을 업데이트하여 소재 사양과 일치합니다. SeekBarPreference에 관한 다른 변경사항은 상세 changelog를 참조하세요.
  • 대량의 버그를 수정하고 스타일을 업데이트하며 API 레벨 호환성을 수정하고 일반적인 QOL을 개선했습니다.

1.1.0-alpha05 이후 API 변경사항

  • 공개 API에서 getOnBindEditTextListener를 삭제합니다. 이 API와 상호작용할 때만 setOnBindEditTextListener를 사용할 필요가 있습니다.

문제가 발생하거나 새로운 기능에 관한 제안사항이 있으면 여기에 버그를 신고하세요.

버전 1.1.0-alpha05

2019년 5월 7일

androidx.preference:preference:1.1.0-alpha05androidx.preference:preference-ktx:1.1.0-alpha05가 출시되었습니다. 이 버전에 포함된 커밋은 여기에서 확인할 수 있습니다.

새로운 기능

  • 선택 불가능한 환경설정의 스타일 지정을 업데이트했습니다. 이제 제목과 요약이 같은 색상을 공유해 두 가지가 상호작용할 수 없으며 정보 표시에만 사용됨을 분명히 했습니다.
  • 참고: 선택 불가능한 환경설정에 enableCopying="true"를 추가하는 것을 고려할 수 있습니다. 그렇게 하면 길게 눌러 요약을 복사할 수 있습니다.

버그 수정

  • PreferenceCategory 및 기타 선택 불가능한 환경설정에서 선택 시 파급 효과가 발생하는 회귀 문제를 해결했습니다.
  • 음성 안내 지원에서 DropDownPreference가 클릭 가능한 것으로 표시되지 않는 접근성 문제를 해결했습니다.
  • 일부 RTL 레이아웃 문제를 해결했습니다.
  • PreferenceFragmentCompat에서 일부 nullable 주석을 업데이트하여 Fragment와 일치합니다.

버전 1.1.0-alpha04

2019년 3월 13일

androidx.preference:preference:1.1.0-alpha04androidx.preference:preference-ktx:1.1.0-alpha04가 출시되었습니다. 이 버전에 포함된 커밋의 전체 목록은 여기에서 확인할 수 있습니다.

새로운 기능

SeekBarPreference 업데이트!

  • 머티리얼 사양과 일치하도록 스타일 지정이 업데이트되었습니다.
    • 값 라벨이 여전히 app:showSeekBarValue="true" 또는 setShowSeekBarValue(true)로 표시될 수 있지만 이제 기본적으로 숨겨져 있습니다. 이 라벨은 머티리얼 사양의 일부는 아니지만 많이 사용되는 사실을 알기 때문에 사용을 권장하지는 않더라도 지원은 계속됩니다.
    • 이제 SeekBar를 놓을 때가 아니라 드래그하는 동안 값 라벨이 업데이트됩니다. 내부적으로 값이 업데이트된다는 점은 아님에 주의하세요. 이와 같은 기능을 사용 설정하는 새로운 API는 아래를 참조하세요.
    • 참고: 지원은 되지만 SeekBarPreference에서 요약은 설정하지 않아야 합니다. 목적에도 맞지 않고 소재 사양의 일부도 아니기 때문입니다.
  • 지속적인 업데이트 지원을 추가하여 SeekBar가 드래그되는 동안 저장된 값을 업데이트할 수 있도록 합니다. XML에서 또는 프로그래매틱 방식으로 app:updatesContinuously="true" 또는 setUpdatesContinuously(true)로 사용 설정할 수 있습니다. 화면에서 SeekBar의 위치가 변경될 때마다 실행됩니다.

API 변경사항

  • 누락된 null 허용 여부 주석이 findPreference()에 추가되었습니다.

버그 수정

  • 복사가 사용 설정되지 않은 경우 컨텍스트 메뉴 리스너가 올바르게 삭제되지 않는 버그를 수정했습니다.

버전 1.1.0-alpha03

2019년 2월 7일

androidx.preference:preference 1.1.0-alpha03

androidx.preference:preference 1.1.0-alpha03androidx.preference:preference-ktx 1.1.0-alpha03 버전이 다음 변경사항과 함께 출시되었습니다.

버그 수정

  • EditTextPreference의 대화상자에 가끔 복사/붙여넣기 팝업이 표시되지 않는 문제를 해결했습니다.
  • 기본 어댑터가 올바르게 등록 취소되지 않아 특정 조건에서 메모리 누수가 발생하는 문제를 수정했습니다(b/121006469).
  • 구성 변경 중 발생하는 일부 대화상자 관련 비정상 종료 문제를 해결했습니다(b/122167543).
  • MultiSelectListPreference에 SummaryProvider가 작동하지 않는 문제를 해결했습니다(b/123022772).

버전 1.1.0-alpha02

2018년 12월 17일

최근 업데이트된 설정 가이드샘플 앱도 확인하세요.

새로운 기능

  • EditTextPreference.OnBindEditTextListener 인터페이스가 추가되었습니다. 이러한 추가를 통해 대화상자가 결합된 후 그 대화상자에 표시되는 EditText를 맞춤설정할 수 있습니다. 예를 들어 맞춤 입력 유형/길이를 설정하거나 TextWatcher를 추가합니다.

  • Preference.setCopyingEnabled()가 추가되었습니다. 이에 따라 설정 시 Preference를 길게 누르면 Preference 요약을 복사할 수 있는 컨텍스트 메뉴가 표시됩니다. 사용자별 ID/애플리케이션 버전 정보와 같은 정적 정보를 복사하는 데 사용할 수 있습니다.

  • 이제 preferenceTheme이 활동 테마에 적용됩니다. 즉, 코드에서 Preference를 생성할 때 더 이상 PreferenceManager#getContext()의 컨텍스트를 사용할 필요가 없습니다. Fragment/Activity 컨텍스트를 사용하기만 하면 됩니다.

API 변경사항

  • findPreference()가 리팩터링되어 <T extends Preference>를 반환합니다. 즉, findPreference()를 사용할 때 Preference를 명시적으로 변환할 필요가 없습니다. 예를 들어 EditTextPreference preference = findPreference(“edit_text”)는 이제 유효한 코드입니다.

버전 1.1.0-alpha01

2018년 11월 5일

새로운 기능

  • 이제 Preference에서 SummaryProvider를 설정하여 Preference가 업데이트되거나 사용자에게 표시될 때마다 요약을 동적으로 구성할 수 있습니다.
  • ListPreference와 EditTextPreference에 기본 SummaryProvider 구현이 추가되었습니다. 이로써 설정 시 자동으로 Preference 요약을 업데이트하여 저장된 값을 반영하거나 저장된 값이 없는 경우 'Not Set'을 반영합니다. app:useSimpleSummaryProvider=”true”로 설정할 수도 있습니다.
  • 그룹 또는 계층 구조의 하위에 있는 중첩된 그룹에서 Preference를 반복적으로 찾아서 삭제하는 PreferenceGroup#removePreferenceRecursively가 추가되었습니다.

API 변경사항

  • 프레임워크 Fragment를 사용하는 PreferenceFragment 및 기타 클래스가 지원 중단되었습니다. 대신 PreferenceFragmentCompat과 기타 compat 클래스를 사용해야 합니다.

버그 수정

  • PreferenceCategories에서 iconSpaceReserved가 올바르게 작동되지 않는 문제를 해결했습니다.
  • PreferenceCategories가 API 21 이하에서 제목 색상에 colorAccent를 사용하지 않는 문제를 해결했습니다.
  • API 21 이하에서 일부 SeekBarPreference 레이아웃 불일치 문제를 해결했습니다.