6월 3일의 ⁠#Android11: 베타 버전 출시 행사에 참여하세요.

Fragment

최근 업데이트 현재 안정화 버전 다음 출시 후보 베타 버전 알파 버전
2020년 4월 1일 1.2.4 - - 1.3.0-alpha03

종속성 선언

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

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

    dependencies {
        def fragment_version = "1.2.4"

        // Java language implementation
        implementation "androidx.fragment:fragment:$fragment_version"
        // Kotlin
        implementation "androidx.fragment:fragment-ktx:$fragment_version"
        // Testing Fragments in Isolation
        debugImplementation "androidx.fragment:fragment-testing:$fragment_version"
    }
    

종속성에 관한 자세한 내용은 빌드 종속성 추가를 참조하세요.

의견

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

새 문제 만들기

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

버전 1.3.0

버전 1.3.0-alpha03

2020년 4월 1일

androidx.fragment:fragment:1.3.0-alpha03, androidx.fragment:fragment-ktx:1.3.0-alpha03androidx.fragment:fragment-testing:1.3.0-alpha03 버전이 출시되었습니다. 버전 1.3.0-alpha03에 포함된 커밋을 확인하세요.

API 변경사항

  • FragmentprepareCall 메서드는 현재 final입니다. (b/152439361)

버그 수정

  • BottomSheetDialogFragment를 사용할 때 프래그먼트 1.3.0-alpha02에 도입되는 회귀 문제가 해결되었습니다. (b/151652127, aosp/1263328, aosp/1265163)
  • 구성 변경 후 프래그먼트에서 prepareCall 사용 시 비정상 종료 문제가 해결되었습니다. (b/152137004)
  • setTargetFragment() 사용 시 공유 요소 및 이탈 전환이 무시되던 문제가 해결되었습니다. (b/152023196)
  • Fragment1.2.4에서: 보관된 프래그먼트의 난독화를 허용하도록 프래그먼트 ProGuard 규칙이 업데이트되었습니다. (b/151605338)
  • Fragment1.2.4에서: 수명 주기와 뷰 수명 주기가 항상 동기화되므로 observe 호출 시 this 또는 viewLifecycleOwner를 안전하게 사용할 수 있도록 DialogFragment 클래스에서 FragmentLiveDataObserve 린트 규칙이 사용 중지되었습니다. (b/151765086)

종속성 변경사항

  • 프래그먼트는 Activity 1.2.0-alpha03에 따라 달라지며, 이는 Activity 1.2.0-alpha02에 도입된 Activity Result API를 대폭 개선했습니다.

버전 1.3.0-alpha02

2020년 3월 18일

androidx.fragment:fragment:1.3.0-alpha02, androidx.fragment:fragment-ktx:1.3.0-alpha02androidx.fragment:fragment-testing:1.3.0-alpha02 버전이 출시되었습니다. 버전 1.3.0-alpha02에 포함된 커밋을 확인하세요.

새로운 기능

  • 플로 테스트를 위한 후크를 제공하는 것에 더해 프래그먼트 내 메서드를 재정의하지 않고 startActivityForResult()+onActivityResult()requestPermissions()+onRequestPermissionsResult() 플로를 처리하기 위해 활동 1.2.0-alpha02에 도입된 ActivityResultRegistry API 지원이 추가되었습니다. 업데이트된 활동에서 결과 가져오기를 참조하세요. (b/125158199)

API 변경사항

  • DialogFragment는 이제 onCreateView()가 기본적으로 확장해야 하는 레이아웃을 표시하는 @LayoutRes를 가져오는 생성자를 제공합니다. (b/150327080)
  • onActivityCreated() 메서드가 지원 중단되었습니다. 프래그먼트의 뷰를 터치하는 코드는 onViewCreated()(onActivityCreated() 직전에 호출됨)에서 실행되어야 하며 다른 초기화 코드는 onCreate()에 있어야 합니다. 활동 onCreate()가 완료되었을 때 콜백을 받으려면 LifeCycleObserveronAttach() 내 활동의 Lifecycle에 등록되어 있어야 하며 onCreate() 콜백이 수신된 후에는 제거되어야 합니다. (b/144309266)

버그 수정

  • Fragment 1.2.3에서: onCreateDialog()에서 getLayoutInflater() 호출 시 StackOverflowError를 일으키던 DialogFragment 내 버그가 수정되었습니다. (b/117894767, aosp/1258664)
  • Fragment 1.2.3에서: 사용되지 않는 프래그먼트 클래스를 제거할 수 있도록 프래그먼트에 포함된 ProGuard 규칙의 범위를 줄였습니다. (b/149665169)
  • Fragment 1.2.3에서: Kotlin 속성 이름을 따르는 로컬 변수 이름을 사용할 때 UseRequireInsteadOfGet 린트 검사 내 거짓양성이 수정되었습니다. (b/149891163)
  • Fragment 1.2.3에서: FragmentContainerView가 더 이상 레이아웃 미리보기에서 잘못된 생성자를 사용하기 위해 UnsupportedOperationException를 발생시키지 않습니다. (b/149707833)

알려진 문제

  • BottomSheetDialogFragment이 화면에 대화상자를 제대로 배치하지 않습니다. (b/151652127)

버전 1.3.0-alpha01

2020년 3월 4일

androidx.fragment:fragment:1.3.0-alpha01, androidx.fragment:fragment-ktx:1.3.0-alpha01androidx.fragment:fragment-testing:1.3.0-alpha01 버전이 출시되었습니다. 버전 1.3.0-alpha01에 포함된 커밋을 확인하세요.

새로운 기능

API 변경사항

  • 프래그먼트의 setRetainInstance() 메서드가 지원 중단되었습니다. ViewModels가 도입되면서 개발자는 활동, 프래그먼트, 탐색 그래프와 연결할 수 있는 상태를 유지하기 위한 특정 API를 갖게 됩니다. 이를 통해 개발자는 보존된 상태가 아닌 일반 상태의 프래그먼트를 사용하고 별도로 보관하고자 하는 특정 상태를 유지할 수 있습니다. 이를 통해 단일 생성의 유용한 속성을 유지하면서 누수의 일반적인 원인을 피하고 보관되는 상태의 파괴를 방지할 수 있습니다(소위 수신하는 ViewModelonCleared() 콜백 생성자). (b/143911815)
  • ViewPager2 1.0.0의 출시로 ViewPager와 상호작용하는 FragmentPagerAdapterFragmentStatePagerAdapter 클래스가 지원 중단되었습니다. ViewPager에서 ViewPager2로 이전을 참조하세요. (b/145132715)

버그 수정

  • 이제 프래그먼트 ProGuard 규칙이 모든 Fragment 인스턴스가 아닌 사용된 기본 생성자 Fragment 클래스만 올바르게 유지하여 프래그먼트 1.2.1에 도입되는 회귀 문제를 수정합니다. (b/149665169
  • Fragment 1.2.2에 추가된 require___() 린트 규칙은 우선 적용된 Kotlin 속성 이름(예: view)과 동일한 이름을 공유하는 로컬 변수에 더 이상 거짓양성을 일으키지 않습니다. (b/149891163)
  • Android 스튜디오에서 레이아웃 미리보기를 사용할 때 FragmentContainerView에서 더 이상 UnsupportedOperationException을 일으키지 않습니다. (b/149707833)
  • 상태가 저장된 후 추가된 보관된 프래그먼트가 계속해서 다시 생성되지 않고 구성이 변경될 때마다 파괴되는 문제가 해결되었습니다. (b/145832397)

버전 1.2.4

버전 1.2.4

2020년 4월 1일

androidx.fragment:fragment:1.2.4, androidx.fragment:fragment-ktx:1.2.4androidx.fragment:fragment-testing:1.2.4 버전이 출시되었습니다. 버전 1.2.4에 포함된 커밋을 확인하세요.

버그 수정

  • 보관된 프래그먼트의 난독화를 허용하도록 프래그먼트 Progard 규칙이 업데이트되었습니다. (b/151605338)
  • 수명 주기와 뷰 수명 주기가 항상 동기화되므로 observe 호출 시 this 또는 viewLifecycleOwner를 안전하게 사용할 수 있도록 DialogFragment 클래스에서 FragmentLiveDataObserve 린트 규칙이 사용 중지되었습니다. (b/151765086)

버전 1.2.3

버전 1.2.3

2020년 3월 18일

androidx.fragment:fragment:1.2.3, androidx.fragment:fragment-ktx:1.2.3androidx.fragment:fragment-testing:1.2.3 버전이 출시되었습니다. 버전 1.2.3에 포함된 커밋을 확인하세요.

버그 수정

  • onCreateDialog()에서 getLayoutInflater() 호출 시 StackOverflowError를 일으키는 DialogFragment 내 버그가 수정되었습니다. (b/117894767, aosp/1258665)
  • 사용되지 않는 프래그먼트 클래스를 제거할 수 있도록 프래그먼트에 포함된 ProGuard 규칙의 범위를 줄였습니다. (b/149665169)
  • Kotlin 속성 이름을 따르는 로컬 변수 이름을 사용할 때 UseRequireInsteadOfGet 린트 검사 내 거짓양성이 수정되었습니다. (b/149891163)
  • FragmentContainerView가 더 이상 레이아웃 미리보기에서 잘못된 생성자를 사용하기 위해 UnsupportedOperationException을 발생시키지 않습니다. (b/149707833)

버전 1.2.2

버전 1.2.2

2020년 2월 19일

androidx.fragment:fragment:1.2.2, androidx.fragment:fragment-ktx:1.2.2androidx.fragment:fragment-testing:1.2.2 버전이 출시되었습니다. 버전 1.2.2에 포함된 커밋을 확인하세요.

새로운 린트 검사

  • 린트는 onCreateView(), onViewCreated(), onActivityCreated()에서 OnBackPressedDispatcher를 호출하기 위해 LifecycleOwnerviewLifecycleOwner을 사용하도록 제안합니다. (b/142117657)
  • fragment-testing 아티팩트를 사용할 때 올바른 debugImplementation을 사용하고 있는지 확인하는 새로운 린트 검사가 추가되었습니다. (b/141500106)
  • 이제 프래그먼트에서 연결된 require___() 메서드를 사용하여 getrequire 등가물을 포함하는 모든 Fragment API에 대해 checkNotNull(get___()), requireNonNull(get___()) 또는 get___()!! 대신 보다 자세한 오류 메시지를 제공합니다. (aosp/1202883)

버그 수정

  • R8 경고를 피하기 위해 프래그먼트 ProGuard 파일을 수정했습니다.(b/148963981)
  • observelivedata-ktx 확장 메서드 버전을 처리하기 위해 observe 사용 시 viewLifecycleOwner 사용을 제안하던 기존 린트 검사 기능을 개선했습니다. (b/148996309)
  • 린트 검사의 상당 부분의 형식을 수정했습니다.(aosp/1157012)

외부 기여

  • Slack을 대신하여 require___() 린트 검사에 참여해 주신 잭 스위어스님에게 감사드립니다. (aosp/1202883)

버전 1.2.1

버전 1.2.1

2020년 2월 5일

androidx.fragment:fragment:1.2.1, androidx.fragment:fragment-ktx:1.2.1androidx.fragment:fragment-testing:1.2.1 버전이 출시되었습니다. 버전 1.2.1에 포함된 커밋을 확인하세요.

버그 수정

  • 이제 Class 인스턴스(또는 Kotlin 구체화된 버전)를 사용하는 addreplace 메서드를 통해 추가된 프래그먼트는 ProGuard에서 보관하는 기본 생성자를 유지합니다. (b/148181315)
  • FragmentStatePagerAdapterFragmentPagerAdapter는 더 이상 finishUpdate() 실행 시 FragmentManager에서 발생시키는 예외를 포착하지 않습니다. (aosp/1208711)
  • FragmentManager.findFragment()<fragment> 태그를 통해 추가된 프래그먼트에서 작동하지 않는 문제가 해결되었습니다. (b/147784323)
  • 이제 <fragment> 태그를 사용하여 확장된 프래그먼트는 항상 레이아웃에서 onCreate() 전에 onInflate()를 호출합니다. (aosp/1215856)
  • 활동이 이미 파괴된 경우 FragmentManager 인스턴스에서 toString()을 호출해도 NullPointerException을 야기하지 않습니다. (b/148189412)

종속성 변경사항

버전 1.2.0

버전 1.2.0

2020년 1월 22일

androidx.fragment:fragment:1.2.0, androidx.fragment:fragment-ktx:1.2.0androidx.fragment:fragment-testing:1.2.0 버전이 출시되었습니다. 버전 1.2.0에 포함된 커밋을 확인하세요.

1.1.0 이후 중요 변경사항

  • FragmentContainerView: FragmentContainerViewFrameLayout 또는 다른 레이아웃 사용을 대체하여 동적으로 추가된 프래그먼트에 강력히 권장되는 컨테이너입니다. <fragment> 태그와 동일한 class, android:name 및 선택적 android:tag도 지원하지만 일반 FragmentTransaction을 사용하여 <fragment>에서 사용하는 맞춤 코드 경로 대신 이 초기 프래그먼트를 추가합니다.
  • onDestroyView() 타이밍: 프레임워크는 이제 onDestroyView()을 호출하기 전에 종료 애니메이션, 종료 프레임워크 전환 및 종료 AndroidX 전환(전환 1.3.0을 사용하는 경우)이 완료될 때까지 기다립니다.
  • 클래스 기반 add()replace(): FragmentTransactionadd()replace()의 새 오버로드가 추가되었습니다. 이러한 오버로드는 인수의 Class<? extends Fragment> 및 선택적 Bundle을 가져옵니다. 이러한 메서드에서는 FragmentFactory를 사용하여 추가할 프래그먼트의 인스턴스를 구성합니다. 또한 구체화된 유형(예: fragmentTransaction.replace<YourFragment>(R.id.container))을 사용하는 Kotlin 확장이 fragment-ktx에 추가되었습니다.
  • Lifecycle ViewModel SavedState 통합: by viewModels(), by activityViewModels(), ViewModelProvider 생성자 또는 ViewModelProviders.of()를 프래그먼트와 함께 사용할 때 SavedStateViewModelFactory가 이제 기본 팩토리로 사용됩니다.
  • 새로운 린트 검사: onCreateView(), onViewCreated() 또는 onActivityCreated()LiveData를 관찰할 때 getViewLifecycleOwner()를 사용하는지 확인하는 새로운 린트 검사가 추가되었습니다.
  • getFragmentManager() 지원 중단: getFragmentManager()requireFragmentManager() 메서드가 지원 중단되었으며 프래그먼트가 추가되는 null이 아닌 FragmentManager를 반환하는 단일 getParentFragmentManager() 메서드로 대체되었습니다(isAdded()를 사용하여 호출이 안전한지 확인할 수 있음).
  • FragmentManager.enableDebugLogging() 지원 중단: 정적 FragmentManager.enableDebugLogging 메서드가 지원 중단되었습니다. 이제 FragmentManager는 FragmentManager 태그에서 Log.isLoggable()을 준수합니다. 이에 따라 앱을 다시 컴파일하지 않고도 DEBUG 또는 VERBOSE 로깅을 사용 설정할 수 있습니다.

알려진 문제

  • FragmentContainerViewclass 또는 android:name 속성을 통해서만 참조되는 프래그먼트는 ProGuard에 의해 자동으로 유지되지 않으므로 각 프래그먼트 클래스의 Keep 규칙을 수동으로 추가해야 합니다. (b/142601969 참조)
  • class 또는 android:name을 사용하여 XML에 FragmentContainerView와 함께 NavHostFragment를 추가할 때 활동의 onCreate()findNavController()를 사용할 수 없습니다. (b/142847973 참조)

버전 1.2.0-rc05

2020년 1월 8일

androidx.fragment:fragment:1.2.0-rc05, androidx.fragment:fragment-ktx:1.2.0-rc05androidx.fragment:fragment-testing:1.2.0-rc05 버전이 출시되었습니다. 버전 1.2.0-rc05에 포함된 커밋을 확인하세요.

버그 수정

  • <fragment> 태그를 사용할 때 활동을 삭제하는 동안 onViewCreated()가 잘못 호출되는 프래그먼트 1.2.0-rc04의 회귀 문제가 수정되었습니다. (b/146290333 참조)
  • 이제 <fragment> 태그를 사용하여 추가된 프래그먼트가 일부 레이아웃(예: 가로 모드 레이아웃)에만 있는 경우에도 프래그먼트의 non-config가 제대로 삭제됩니다. 따라서 이러한 프래그먼트는 이제 레이아웃에 없는 경우에도 인스턴스화되는 대신 CREATED로 올바로 이동하지만 수명 주기 메서드를 통해서는 이동하지 않습니다. (b/145769287 참조)

버전 1.2.0-rc04

2019년 12월 18일

androidx.fragment:fragment:1.2.0-rc04, androidx.fragment:fragment-ktx:1.2.0-rc04androidx.fragment:fragment-testing:1.2.0-rc04 버전이 출시되었습니다. 버전 1.2.0-rc04에 포함된 커밋을 확인하세요.

버그 수정

  • 시각적 문제를 피할 수 있도록 TRANSIT_FRAGMENT_OPEN, TRANSIT_FRAGMENT_CLOSE, TRANSIT_FRAGMENT_FADE의 애니메이션이 조정되었습니다. (b/145468417 참조)

버전 1.2.0-rc03

2019년 12월 4일

androidx.fragment:fragment:1.2.0-rc03, androidx.fragment:fragment-ktx:1.2.0-rc03androidx.fragment:fragment-testing:1.2.0-rc03 버전이 출시되었습니다. 버전 1.2.0-rc03에 포함된 커밋을 확인하세요.

버그 수정

  • 종료 애니메이션/전환이 실행되는 동안 findFragmentById()/findFragmentByTag()에서 여전히 삭제된 프래그먼트를 반환하는 동작 변경사항이 수정되었습니다. (b/143982969aosp/1167585 참조)
  • 이제 포함된 활동이 onSaveInstanceState()를 호출할 때 하위 프래그먼트가 상위 프래그먼트 전에 올바로 중지됩니다. (b/144380645 참조)
  • 숨겨진 프래그먼트를 표시한 후 뷰가 INVISIBLE로 잘못 표시되는 문제가 해결되었습니다. (b/70793925 참조)
  • 프래그먼트 공유 요소 전환이 이제 회전 또는 크기가 조정된 뷰를 처리합니다. (b/142835261 참조)

문서 업데이트

  • setUserVisibleHint() 관련 지원 중단이 문서로 명확히 설명되었습니다. (b/143897055 참조)
  • FragmentFactory를 설정하면 하위 FragmentManagers에도 영향이 있다는 것을 더 잘 나타내도록 setFragmentFactory()getFragmentFactory()에 관한 문서가 개선되었습니다. (aosp/1170095 참조)

종속성 변경사항

  • 프래그먼트가 이제 Lifecycle 2.2.0-rc03, Lifecycle ViewModel SavedState 1.0.0-rc03, Activity 1.1.0-rc03에 종속됩니다.

버전 1.2.0-rc02

2019년 11월 7일

androidx.fragment:fragment:1.2.0-rc02, androidx.fragment:fragment-ktx:1.2.0-rc02androidx.fragment:fragment-testing:1.2.0-rc02 버전이 출시되었습니다. 버전 1.2.0-rc02에는 이러한 커밋이 포함되어 있습니다.

버그 수정

  • Kotlin에서 onCreateView(), onViewCreated() 또는 onActivityCreated()(Fragment 1.2.0-rc01에 도입됨)의 LiveData를 관찰할 때 getViewLifecycleOwner()를 사용하기 위한 LintFix는 이제 getViewLifecycleOwner() 대신 Kotlin 속성 액세스 구문 viewLifecycleOwner를 사용합니다. aosp/1143821을 참조하세요.

버전 1.2.0-rc01

2019년 10월 23일

androidx.fragment:fragment:1.2.0-rc01, androidx.fragment:fragment-ktx:1.2.0-rc01androidx.fragment:fragment-testing:1.2.0-rc01 버전이 출시되었습니다. 버전 1.2.0-rc01에는 이러한 커밋이 포함되어 있습니다.

새로운 기능

  • FragmentContainerView는 이제 android:name 외에도 class 속성을 지원하며 <fragment> 태그의 기능을 미러링합니다. b/142722242를 참조하세요.
  • onCreateView(), onViewCreated() 또는 onActivityCreated()LiveData를 관찰할 때 getViewLifecycleOwner()를 사용하는지 확인하는 새로운 린트 검사가 추가되었습니다. b/137122478을 참조하세요.

버그 수정

  • 이제 DialogFragmentonDismissonCancel 콜백은 실행될 때 전달받은 DialogInterface가 null이 아니며 getDialog()가 null이 아닌 값을 반환한다는 것을 보장합니다. b/141974033을 참조하세요.
  • 이제 FragmentContainerViewclass 또는 android:name으로 정의된 프래그먼트를 확장의 일부로 추가하여 이후에 findFragmentById()findFragmentByTag()가 즉시 작동하도록 합니다. b/142520327을 참조하세요.
  • 저장 중인 상태로 인한 FragmentContainerViewIllegalStateException이 수정되었습니다. b/142580713을 참조하세요.
  • FragmentContainerView 클래스가 난독화될 때 FragmentContainerViewUnsupportedOperationException이 수정되었습니다. b/142657034를 참조하세요.

알려진 문제

  • FragmentContainerViewclass 또는 android:name 속성을 통해서만 참조되는 프래그먼트는 ProGuard에 의해 자동으로 유지되지 않으므로 각 프래그먼트 클래스의 Keep 규칙을 수동으로 추가해야 합니다. 이 문제가 aapt2를 통해 수정될 때까지 FragmentContainerView로 이동하도록 제안하는 린트 규칙을 사용 중지했습니다. b/142601969를 참조하세요.

버전 1.2.0-beta02

2019년 10월 11일

androidx.fragment:fragment:1.2.0-beta02, androidx.fragment:fragment-ktx:1.2.0-beta02androidx.fragment:fragment-testing:1.2.0-beta02 버전이 출시되었습니다. 버전 1.2.0-beta02에는 이러한 커밋이 포함되어 있습니다.

버그 수정

  • NavHostFragment와 같은 문제 해결 사례에서 알 수 있듯이 프래그먼트의 onInflate()FragmentContainerView에서 적절한 속성을 받지 못하는 문제가 수정되었습니다. b/142421837을 참조하세요.

버전 1.2.0-beta01

2019년 10월 9일

androidx.fragment:fragment:1.2.0-beta01, androidx.fragment:fragment-ktx:1.2.0-beta01androidx.fragment:fragment-testing:1.2.0-beta01 버전이 출시되었습니다. 버전 1.2.0-beta01에는 이러한 커밋이 포함되어 있습니다.

새로운 기능

  • FragmentContainerView에서는 android:name 및 선택적 android:tag XML 속성 지원의 추가를 통해 초기 프래그먼트 추가를 위한 지원이 추가되었습니다. <fragment> 태그와 달리 FragmentContainerView는 이면에서 내부적으로 일반 FragmentTransaction을 사용하여 초기 프래그먼트를 추가하므로 FragmentContainerViewFragmentTransaction 작업을 추가로 실행하고 레이아웃에 뷰 결합을 사용할 수 있습니다. b/139830628b/141177981을 참조하세요.
  • 이제 프래그먼트에는 <fragment>FragmentContainerView로 바꾸도록 빠른 수정을 제공하는 린트 경고가 포함됩니다. b/139830056을 참조하세요.

버그 수정

  • androidx.transition을 사용할 때 ClassCastException이 수정되었습니다. b/140680619를 참조하세요.
  • Transition 1.3.0-beta01을 사용할 때 프래그먼트는 이제 onDestroyView()를 전달하기 전에 androidx.transition 전환(Fragment 1.2.0-alpha03Fragment 1.2.0-alpha02에서 각각 수정된 프레임워크 전환 및 애니메이션 외에도)이 완료될 때까지 기다립니다. aosp/1119841을 참조하세요.
  • Transition 1.3.0-beta01을 사용할 때 프래그먼트는 이제 동일한 컨테이너에서 새로운 전환/애니메이션을 시작하기 전에 androidx.transition 전환을 적절하게 취소합니다. aosp/1119841을 참조하세요.
  • API 17 이하에서 FragmentContainerView 사용 시 프래그먼트의 루트 뷰에서 androidx.transition 전환을 사용할 때 발생하는 문제가 수정되었습니다. b/140361893을 참조하세요.
  • fragment-testing 아티팩트는 이제 AndroidX 테스트 1.2.0에 종속되므로 최신 Espresso 3.2.0과 호환되지 않는 문제가 수정되었습니다. b/139100149를 참조하세요.
  • FragmentManager의 Log.w 사용이 삭제되었습니다. aosp/1126468을 참조하세요.

알려진 문제

  • NavHostFragment와 같은 문제 해결 사례에서 알 수 있듯이 프래그먼트의 onInflate()FragmentContainerView에서 적절한 속성을 받지 못합니다. b/142421837을 참조하세요.

버전 1.2.0-alpha04

2019년 9월 18일

androidx.fragment:fragment:1.2.0-alpha04, androidx.fragment-ktx:example:1.2.0-alpha04androidx.fragment:fragment-testing:1.2.0-alpha04 버전이 출시되었습니다. 버전 1.2.0-alpha04에는 이러한 커밋이 포함되어 있습니다.

API 변경사항

  • FragmentgetFragmentManager()requireFragmentManager() 메서드가 지원 중단되었으며 프래그먼트가 추가되는 null이 아닌 FragmentManager를 반환하는 단일 getParentFragmentManager() 메서드로 대체되었습니다(isAdded()를 사용하여 호출이 안전한지 확인할 수 있음). b/140574496을 참조하세요.
  • 정적 FragmentManager.enableDebugLogging 메서드가 지원 중단되었습니다. 이제 FragmentManager는 FragmentManager 태그에서 Log.isLoggable()을 준수합니다. 이에 따라 앱을 다시 컴파일하지 않고도 DEBUG 또는 VERBOSE 로깅을 사용 설정할 수 있습니다. aosp/1116591을 참조하세요.

버그 수정

  • 이제 다른 프래그먼트의 이탈 애니메이션이 실행되는 동안 프래그먼트가 적절하게 제거됩니다. b/140574199를 참조하세요.
  • 프래그먼트가 이전에 호출하지 않았던 Activity.findViewById()를 호출하는 문제가 수정되었습니다. aosp/1116431을 참조하세요.

버전 1.2.0-alpha03

2019년 9월 5일

androidx.fragment:fragment:1.2.0-alpha03, androidx.fragment:fragment-ktx:1.2.0-alpha03androidx.fragment:fragment-testing:1.2.0-alpha03 버전이 출시되었습니다. 이 버전에 포함된 커밋은 여기에서 확인할 수 있습니다.

API 변경사항

  • FragmentContainerView는 이제 final입니다. b/140133091을 참조하세요.

버그 수정

  • 이제 FragmentContainerView는 백 스택에서 프래그먼트를 삭제할 때 그리기 순서를 올바르게 반대로 바꿉니다. b/139104187을 참조하세요.
  • 프래그먼트를 표시하는 동시에 새 프래그먼트를 추가할 때 잘못된 애니메이션이 실행되는 문제가 수정되었습니다. b/111659726을 참조하세요.
  • 프래그먼트는 이제 onDestroyView()를 전달하기 전에 전환(Fragment 1.2.0-alpha02에서 수정된 애니메이션 외에도)이 완료될 때까지 기다립니다. b/138741697을 참조하세요.

버전 1.2.0-alpha02

2019년 8월 7일

androidx.fragment:fragment:1.2.0-alpha02, androidx.fragment:fragment-ktx:1.2.0-alpha02androidx.fragment:fragment-testing:11.2.0-alpha02 버전이 출시되었습니다. 이 버전에 포함된 커밋은 여기에서 확인할 수 있습니다.

새로운 기능

  • 이제 SavedStateViewModelFactoryby viewModels(), by activityViewModels(), ViewModelProvider 생성자 또는 ViewModelProviders.of()Fragment와 함께 사용할 때 사용되는 공장 기본값입니다. b/135716331을 참조하세요.
  • FragmentTransactionsetTransition과 함께 TRANSIT_FRAGMENT_OPEN, TRANSIT_FRAGMENT_CLOSE, TRANSIT_FRAGMENT_FADE를 사용할 때의 기본 애니메이션이 Android 10 기기의 활동에서 사용하는 애니메이션과 일치하도록 업데이트되었습니다. aosp/1012812aosp/1014730을 참조하세요.

API 변경사항

  • FrameLayout 사용을 대체하여 동적으로 추가된 프래그먼트에 강력히 권장되는 컨테이너로 FragmentContainerView를 도입함으로써 애니메이션 z-순서 문제와 프래그먼트로의 창 인셋 전달 문제가 수정되었습니다. b/37036000, aosp/985243b/136494650을 참조하세요.
  • 프래그먼트에 의해 확장되는 뷰에서 포함 프래그먼트를 검색하는 정적 FragmentManager.findFragment(View) 메서드가 추가되었습니다. 또한 Kotlin 확장은 fragment-ktx에서도 사용할 수 있습니다. aosp/1090757을 참조하세요.
  • FragmentTransactionadd()replace()의 새 오버로드가 추가되었습니다. 이러한 오버로드는 인수의 Class<? extends Fragment> 및 선택적 Bundle을 가져옵니다. 이러한 메서드에서는 FragmentFactory를 사용하여 추가할 프래그먼트의 인스턴스를 구성합니다. 또한 구체화된 유형(예: fragmentTransaction.replace<YourFragment>(R.id.container))을 사용하는 Kotlin 확장이 fragment-ktx에 추가되었습니다. b/126124987을 참조하세요.
  • @MainThread 주석이 Fragment 수명 주기 콜백에 추가되었습니다. b/127272564를 참조하세요.
  • FragmentTransactionFragmentManager.BackStackEntry의 탐색경로 제목 관련 API가 지원 중단되었습니다. b/138252944를 참조하세요.
  • FragmentTransactionsetTransitionStyle 메서드가 지원 중단되었습니다. aosp/1011537을 참조하세요.
  • FragmentManager의 많은 메서드가 더 이상 abstract가 아닙니다. FragmentManager 자체는 여전히 abstract이므로 직접 인스턴스화하거나 확장해서는 안 됩니다. 계속해서 getSupportFragmentManager(), getChildFragmentManager() 등에서 기존 인스턴스만 가져와야 합니다.

버그 수정

  • Fragment 1.1.0-rc04에서: 프래그먼트는 이제 프래그먼트에서 표시했던 연기된 전환을 올바르게 취소합니다. b/138251858을 참조하세요.
  • Fragment 1.1.0-rc03에서: 시간 초과로 postponeEnterTransition()을 두 번 이상 호출해도 이전 시간 초과가 취소되지 않는 문제가 수정되었습니다. b/137797118을 참조하세요.
  • Fragment 1.1.0-rc02에서: 현재 항목을 삭제할 때 FragmentPagerAdapterFragmentStatePagerAdapter에서 발생하는 비정상 종료 문제가 수정되었습니다. b/137209870을 참조하세요.
  • 이제 프래그먼트는 onDestroyView()를 전달하기 전에 애니메이션이 완료될 때까지 기다립니다. b/136110528을 참조하세요.
  • 이제 상위 프래그먼트를 애니메이션 처리할 때 하위 프래그먼트와 종속 항목의 프래그먼트 애니메이션이 올바르게 처리됩니다. b/116675313을 참조하세요.
  • 공유 요소 전환을 사용하고 팝업과 추가 작업을 결합할 때의 NullPointerException이 수정되었습니다. b/120507394를 참조하세요.
  • Robolectric 테스트에서 FragmentPagerAdapterFragmentStatePagerAdapter를 사용할 때 IllegalStateException 관련 해결 방법이 추가되었습니다. b/137201343을 참조하세요.

버전 1.2.0-alpha01

2019년 7월 2일

androidx.fragment:fragment:1.2.0-alpha01, androidx.fragment:fragment-ktx:1.2.0-alpha01androidx.fragment:fragment-testing:1.2.0-alpha01 버전이 출시되었습니다. 이 버전에 포함된 커밋은 여기에서 확인할 수 있습니다.

새로운 기능

  • 이제 FragmentManager는 프래그먼트의 뷰를 연결한 후 onViewCreated()를 호출하기 직전에 requestApplyInsets()를 호출하므로 뷰에 항상 올바른 인셋이 사용됩니다. b/135945162를 참조하세요.

버그 수정

  • replace() 전에 setPrimaryNavigationFragment()를 사용한 FragmentTransaction을 표시할 때 발생하는 NullPointerException이 수정되었습니다. b/134673465를 참조하세요.

버전 1.1.0

버전 1.1.0

2019년 9월 5일

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

1.0.0 이후 중요 변경사항

  • fragment-testing: fragment-testing 아티팩트는 프래그먼트를 개별적으로 테스트하기 위한 FragmentScenario 클래스를 제공합니다. 자세한 내용은 앱 프래그먼트 테스트 문서를 참조하세요.
  • FragmentFactory: 이제 FragmentManager에서 FragmentFactory를 설정하여 프래그먼트 인스턴스 생성을 관리하고 인수가 없는 생성자를 보유해야 하는 엄격한 요구사항을 삭제할 수 있습니다.
  • ViewModel의 Kotlin 속성 위임: 이제 fragment-ktx 아티팩트에는 2개의 Kotlin 속성 위임, 즉 개별 프래그먼트와 연결된 ViewModel에 액세스하기 위한 by viewModels() 및 활동으로 범위가 지정된 ViewModel에 액세스하기 위한 by activityViewModels()가 포함되어 있습니다.
  • 최대 수명 주기: 이제 FragmentTransactionsetMaxLifecycle()을 호출하여 프래그먼트의 최대 수명 주기 상태를 설정할 수 있습니다. 이 함수가 이제 지원 중단된 setUserVisibleHint()를 대체합니다. FragmentPagerAdapterFragmentStatePagerAdapter에는 새 생성자가 있습니다. 이 생성자를 통해 새로운 동작으로 전환할 수 있습니다.
  • FragmentActivity LayoutId 생성자: 이제 FragmentActivity의 서브클래스는 R.layout ID를 사용하는 FragmentActivity의 생성자를 선택적으로 호출할 수 있으며 이 동작은 onCreate()setContentView()를 호출하는 대신 콘텐츠 뷰로 설정해야 하는 레이아웃을 나타냅니다. 그렇지만 서브클래스에 인수가 없는 생성자가 있어야 한다는 요구사항은 변경되지 않습니다.
  • Fragment LayoutId 생성자: 이제 Fragment의 서브클래스는 R.layout ID를 사용하는 Fragment의 생성자를 선택적으로 호출할 수 있으며 이 동작은 onCreateView()를 재정의하는 대신 이 프래그먼트에 사용해야 하는 레이아웃을 나타냅니다. 확장된 레이아웃은 onViewCreated()에서 구성할 수 있습니다.
  • 시간 초과로 연기: 제한 시간을 사용하는 postponeEnterTransition()의 새 오버로드가 추가되었습니다.

버전 1.1.0-rc04

2019년 8월 7일

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

버그 수정

  • 프래그먼트는 이제 프래그먼트에서 표시했던 연기된 전환을 올바르게 취소합니다. b/138251858을 참조하세요.

버전 1.1.0-rc03

2019년 7월 19일

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

버그 수정

  • 시간 초과로 postponeEnterTransition()을 두 번 이상 호출해도 이전 시간 초과가 취소되지 않는 문제가 수정되었습니다. b/137797118을 참조하세요.

버전 1.1.0-rc02

2019년 7월 17일

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

버그 수정

  • 현재 항목을 삭제할 때 FragmentPagerAdapterFragmentStatePagerAdapter에서 발생하는 비정상 종료 문제가 수정되었습니다. b/137209870을 참조하세요.

버전 1.1.0-rc01

2019년 7월 2일

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

버그 수정

  • 이제 프래그먼트는 전환이 실행되는 동안 show() 또는 hide() 작업을 사용할 때 공개 상태를 적절하게 업데이트합니다. b/133385058을 참조하세요.
  • replace() 전에 setPrimaryNavigationFragment()를 사용한 FragmentTransaction을 표시할 때 발생하는 NullPointerException이 수정되었습니다. b/134673465를 참조하세요.

버전 1.1.0-beta01

2019년 6월 5일

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

버그 수정

  • 이제 중첩된 프래그먼트의 androidx.lifecycle.Lifecycle 콜백(특히 STARTED, RESUMED, PAUSED, STOPPEDDESTROYED 관련)이 적절하게 중첩됩니다. b/133497591을 참조하세요.
  • 프래그먼트의 onCreate()에 등록된 OnBackPressedCallback 인스턴스가 이제 하위 FragmentManager보다 적절하게 우선시됩니다. b/133175997을 참조하세요.
  • 상위 프래그먼트가 교체되고 있을 때 하위 프래그먼트는 더 이상 애니메이션 처리되지 않습니다. b/121017790을 참조하세요.
  • 이제 animateLayoutChanges="true" 사용 시 프래그먼트 애니메이션 및 전환이 무시되며 프래그먼트가 적절하게 제거되지 않던 문제가 수정되었습니다. b/116257087을 참조하세요.

버전 1.1.0-alpha09

2019년 5월 16일

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

API 변경사항

  • 이제 기본 탐색 프래그먼트가 변경될 때 프래그먼트가 새 onPrimaryNavigationFragmentChanged(boolean) 메서드에 관한 콜백을 수신합니다. aosp/960857을 참조하세요.

버그 수정

  • 이제 상위 프래그먼트가 삭제될 때 하위 프래그먼트에 의해 확장된 메뉴 항목이 올바르게 삭제됩니다. (b/131581013을 참조하세요.

버전 1.1.0-alpha08

2019년 5월 7일

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

이 출시는 1.1.0-alpha01 ~ 1.1.0-alpha04 환경설정과 호환되지 않습니다. 이 버전의 프래그먼트를 사용할 경우 1.1.0-alpha05 환경설정으로 업그레이드하세요.

새로운 기능

  • 제한 시간이 경과한 후 프래그먼트가 startPostponedEnterTransition()을 자동으로 호출하는 postponeEnterTransition()의 새 오버로드가 추가되었습니다. b/120803208을 참조하세요.

API 변경사항

  • 브레이킹 체인지: Bundle을 가져오는 FragmentFactory instantiate 메서드(이전에 지원 중단됨)가 삭제되었습니다. aosp/953856을 참조하세요.
  • 브레이킹 체인지: FragmentPagerAdapterFragmentStatePagerAdapter에서 RESUME_ONLY_CURRENT_FRAGMENTUSE_SET_USER_VISIBLE_HINT 상수의 이름이 각각 BEHAVIOR_RESUME_ONLY_CURRENT_FRAGMENTBEHAVIOR_SET_USER_VISIBLE_HINT전에. aosp/954782를 참조하세요.

버그 수정

  • setMaxLifecycle()을 통해 수명 주기를 제한한 프래그먼트가 최종 상태에 도달하기 전에 더 이상 다시 시작되지 않습니다. b/131557151을 참조하세요.
  • setMaxLifecycle(Lifecycle.State.CREATED) 사용 시 프래그먼트에서 뷰가 제대로 제거됩니다. aosp/954180을 참조하세요.

버전 1.1.0-alpha07

2019년 4월 25일

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

새로운 기능

  • 이제 FragmentTransactionsetMaxLifecycle()을 호출하여 프래그먼트의 최대 수명 주기 상태를 설정할 수 있습니다. 이 함수가 이제 지원 중단된 setUserVisibleHint()를 대체합니다. FragmentPagerAdapterFragmentStatePagerAdapter에는 새 생성자가 있습니다. 이 생성자를 통해 새로운 동작으로 전환할 수 있습니다. b/129780800을 참조하세요.

API 변경사항

  • FragmentScenariomoveToState(STARTED)는 이제 API 24+ 기기에서만 호출할 수 있습니다. b/129880016을 참조하세요.

동작 변경사항

  • (b/129907905)의 결과로 백 스택의 프래그먼트는 호스팅 활동이 다시 생성될 때 onCreateView()에 관한 콜백을 가져오지 않습니다. 이제 프로그래먼트가 표시 상태가 될 때만(즉, 백 스택이 표시될 때만) onCreateView()가 호출됩니다.

버그 수정

  • XML의 <fragment> 태그와 FragmentActivity 또는 AppCompatActivitycontentLayoutId 생성자를 사용할 때 발생하는 문제가 수정되었습니다. b/129907905를 참조하세요.
  • 구성이 변경된 이후에 백 스택의 프래그먼트가 최소한 CREATED로 이동하지 않아 ViewModel 및 보관된 하위 프래그먼트가 제대로 처리되지 않던 문제가 수정되었습니다. b/129593351을 참조하세요.
  • 인스턴스 상태가 저장된 이후에 보관된 프래그먼트의 비동기화로 인해 발생하는 restoreSaveState의 비정상 종료가 수정되었습니다. b/130433793, aosp/947824를 참조하세요.
  • FragmentManager에 백 스택이 있을 때 프래그먼트 수명 주기와 함께 추가된 OnBackPressedCallback이 호출되지 않던 문제가 수정되었습니다. 자세한 내용은 androidx.activity 1.0.0-alpha07을 참조하세요. aosp/948209를 참조하세요.
  • 프래그먼트가 애니메이션에 LAYER_TYPE_HARDWARE를 더 이상 적용하지 않으므로 특별히 하드웨어 레이어 애니메이션이 필요하다면 애니메이션의 일부로 설정하세요. b/129486478을 참조하세요.

버전 1.1.0-alpha06

2019년 4월 3일

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

새로운 기능

  • FragmentManager에 의해 발생되는 예외 메시지에 이제 프래그먼트의 이름이 포함됩니다. b/67759402를 참조하세요.

API 변경사항

  • 이제 FragmentFragmentActivity에는 @LayoutRes int를 사용하는 두 번째 생성자가 포함되어 있으며 이 생성자가 @ContentView로 클래스에 주석을 다는 이전 동작을 대체합니다. 이 접근법은 앱과 라이브러리 모듈 모두에서 적용됩니다. b/128352521을 참조하세요.
  • 이제 FragmentActivity의 onActivityResult()@CallSuper로 제대로 표시됩니다. b/127971684를 참조하세요.
  • Bundle 인수를 사용하는 FragmentFactory의 instantiate 메서드가 지원 중단되었으므로 앱은 Bundle을 사용하지 않는 새 instantiate 오버로드를 사용해야 합니다. b/128836103을 참조하세요.
  • FragmentScenario 메서드는 이제 @StyleRes로 제대로 주석이 달립니다. aosp/924193을 참조하세요.
  • FragmentTabHost가 지원 중단되었습니다. b/127971835를 참조하세요.
  • FragmentActivity의 getThemedContext()가 삭제되었습니다. aosp/934078을 참조하세요.

버그 수정

  • 새로 추가되는 프래그먼트가 화면에서 깜박이던 1.1.0-alpha05의 회귀 문제가 수정되었습니다. b/129405432를 참조하세요.
  • 일련의 popBackStack+replace+popBackStack 작업 이후 기본 탐색 프래그먼트가 손실되던 문제가 수정되었습니다. b/124332597을 참조하세요.
  • 프래그먼트 상태 복원 시 활동에서 @ContentView 생성자를 사용할 때 발생하던 문제가 수정되었습니다. b/127313094를 참조하세요.
  • 아직 FragmentManager에 연결되지 않은 프래그먼트로 기존 타겟 프래그먼트를 대체할 때의 setTargetFragment() 로직이 수정되었습니다. aosp/932156을 참조하세요.

버전 1.1.0-alpha05

2019년 3월 13일

androidx.fragment:fragment:1.1.0-alpha05, androidx.fragment:fragment-ktx:1.1.0-alpha05androidx.fragment:fragment-testing:1.1.0-alpha05 버전이 출시되었습니다. 이 버전에 포함된 커밋의 전체 목록은 여기에서 확인할 수 있습니다.

새로운 기능

  • 이제 @ContentView 주석 조회가 캐시됩니다. b/123709449를 참조하세요.

동작 변경사항

  • 이제 다른 FragmentManager에 연결된 프래그먼트를 사용하여 remove(), hide(), show(), detach()setPrimaryNavigationFragment()를 호출하면 자동으로 실패하지 않고 IllegalStateException이 발생합니다. aosp/904301을 참조하세요.

버그 수정

  • 이제 FragmentActivityonNewIntent@CallSuper로 올바르게 표시됩니다. b/124120586을 참조하세요.
  • getDialog().dismiss() 또는 getDialog().cancel()을 사용할 때 DialogFragmentonDismiss()가 두 번 호출될 수 있는 문제가 수정되었습니다. b/126563750을 참조하세요.

버전 1.1.0-alpha04

2019년 2월 7일

androidx.fragment:fragment 1.1.0-alpha04, androidx.fragment:fragment-ktx 1.1.0-alpha04androidx.fragment:fragment-testing 1.1.0-alpha04 버전이 출시되었습니다.

새로운 기능

  • 확장되어야 하는 레이아웃 XML 파일을 나타낼 수 있는 @ContentView 클래스 주석 지원이 onCreateView() 재정의의 대안으로 추가되었습니다. onViewCreated()에서 관련 작업을 살펴보는 것이 좋습니다. aosp/837619를 참조하세요.
  • 이제 fragment-testingandroidx.test:core-ktx 1.1.0 안정화 버전에 종속됩니다. b/121209673을 참조하세요.
  • 이제 FragmentScenario와 함께 openActionBarOverflowOrOptionsMenu를 사용하여 프래그먼트 호스팅 옵션 메뉴를 테스트할 수 있습니다. b/121126668을 참조하세요.

API 변경사항

  • @NonNull Bundle을 반환하거나 IllegalStateException을 발생시키는 requireArguments() 메서드가 추가되었습니다. b/121196360을 참조하세요.
  • getLifecycle(), getViewLifecycleOwner()getViewLifecycleOwnerLiveData()는 재정의되어서는 안 되며 향후 릴리스에서 완료될 예정이라는 메모가 추가되었습니다. 현재 이 메서드를 재정의하려면 기능 요청을 제출하세요. aosp/880714를 참조하세요.
  • getViewModelStore()는 재정의되어서는 안 되며 향후 릴리스에서 완료될 예정이라는 메모가 추가되었습니다. 현재 이 메서드를 재정의하려면 기능 요청을 제출하세요. aosp/880713을 참조하세요.
  • 이전 프래그먼트 버전과의 바이너리 호환성 문제가 수정되었습니다. aosp/887877aosp/889834를 참조하세요.

버그 수정

  • nullsetTargetFragment()에 전달할 때 타겟 프래그먼트가 올바르게 삭제됩니다. aosp/849969를 참조하세요.
  • onDestroy() 시 또는 그 이후에 타겟 프래그먼트를 때로 사용할 수 없던 문제가 수정되었습니다. b/122312935를 참조하세요.
  • 이제 DialogFragment의 onDismiss()가 onDestroy() 전에 호출됩니다. aosp/874133aosp/890734를 참조하세요.

버전 1.1.0-alpha03

2018년 12월 17일

새로운 기능

  • 프래그먼트는 이제 BundleSavedStateRegistryOwner를 구현하고 새로 출시된 SavedState 라이브러리에 종속됩니다. aosp/824380을 참조하세요.
  • 포함 활동과 연결된 ViewModel을 검색하도록 by activityViewModels Kotlin 속성 위임이 추가되었습니다. b/119050253을 참조하세요.
  • ViewModelStoreOwner를 가져오는 선택적 람다 메서드를 사용하도록 by viewModels Kotlin 속성 위임이 확장되었습니다. 이러한 확장을 통해 val viewModel: MyViewModel by viewModels(::requireParentFragment)와 같은 코드를 사용하여 상위 프래그먼트 또는 다른 맞춤 ViewModelStoreOwner를 전달할 수 있습니다. b/119050253을 참조하세요.

API 변경사항

  • 이제 FragmentScenario를 통해 Theme.AppCompat과 같은 테마를 지정할 수 있습니다. b/119054431을 참조하세요. 브레이킹 체인지입니다.
  • @NonNull View를 반환하거나 IllegalStateException을 발생시키는 requireView() 메서드가 추가되었습니다. b/120241368을 참조하세요.
  • @NonNull Fragment를 반환하거나 IllegalStateException을 발생시키는 requireParentFragment() 메서드가 추가되었습니다. b/112103783을 참조하세요.

버그 수정

  • IllegalStateException, 즉 상태 저장 실패가 수정되었습니다. b/120814739를 참조하세요.
  • 이제 저장된 인스턴스 상태에서 복원 중인 프래그먼트는 항상 null이 아닌 Bundle을 수신합니다. b/119794496을 참조하세요.
  • 삭제된 프래그먼트가 더 이상 Lifecycle 객체를 재사용하지 않습니다(다시 추가되어도). b/118880674를 참조하세요.

버전 1.1.0-alpha02

2018년 12월 3일

새로운 기능

  • 이제 FragmentScenario의 Kotlin 확장을 사용하면 FragmentFactory 인스턴스를 전달하는 대신 프래그먼트 생성에 람다를 사용할 수 있습니다. aosp/812913을 참조하세요.

버그 수정

  • 백 스택에서 중첩된 프래그먼트를 사용할 때 발생하는 IllegalStateException이 수정되었습니다. b/119256498을 참조하세요.
  • FragmentFactory와 함께 FragmentScenario.recreate()를 사용할 때의 비정상 종료가 수정되었습니다. aosp/820540을 참조하세요.
  • 프래그먼트를 삭제한 이후에 타겟 프래그먼트에 액세스할 수 없던 문제가 수정되었습니다. aosp/807634를 참조하세요.

버전 1.1.0-alpha01

2018년 11월 5일

이 버전은 androidx.test:core API를 기반으로 빌드되는 FragmentScenariofragment-testing 아티팩트의 최초 출시입니다. 자세한 내용은 프래그먼트 테스트 문서를 참조하세요.

새로운 기능

  • 프래그먼트를 개별적으로 테스트하기 위한 새로운 FragmentScenario 클래스를 제공합니다.
  • 이제 FragmentManager에서 FragmentFactory를 설정하여 새 프래그먼트 인스턴스를 인스턴스화하는 방법을 제어할 수 있습니다.
  • 프래그먼트에서 ViewModel을 검색하기 위한 새로운 by viewModels() Kotlin 속성 위임이 추가되었습니다.
  • 대기 중인 입력 이벤트(예: 클릭)가 이제 프래그먼트의 onStop()에서 취소됩니다.

API 변경사항

  • 프래그먼트 API 표면에서 null 허용 여부 주석을 크게 확장했습니다.

버그 수정

  • LiveData 내에서 프래그먼트 작업의 실패를 초래하던 문제가 수정되었습니다. b/77944637을 참조하세요.

알려진 문제

  • 프래그먼트를 FragmentManager에서 삭제한 이후에 타겟 프래그먼트에 액세스할 수 없습니다.
  • fragment-testing은 정확한 androidx.test:core:1.0.0 대신 androidx.test:core:1.0.0-beta01에 종속됩니다.