RecyclerView

메모리 사용량을 최소화하면서 UI에 많은 양의 데이터를 표시합니다.

이 표에는 androidx.recyclerview 그룹의 모든 아티팩트가 나열되어 있습니다.

아티팩트 안정화 버전 출시 후보 버전 베타 버전 알파 버전
recyclerview 1.3.2 - - 1.4.0-alpha01
recyclerview-selection 1.1.0 - - 1.2.0-alpha01
이 라이브러리는 2023년 10월 18일에 최종 업데이트되었습니다.

종속 항목 선언

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

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

Groovy

dependencies {
    implementation "androidx.recyclerview:recyclerview:1.3.2"
    // For control over item selection of both touch and mouse driven selection
    implementation "androidx.recyclerview:recyclerview-selection:1.1.0"
}

Kotlin

dependencies {
    implementation("androidx.recyclerview:recyclerview:1.3.2")
    // For control over item selection of both touch and mouse driven selection
    implementation("androidx.recyclerview:recyclerview-selection:1.1.0")
}

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

의견

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

새로운 문제 제출하기

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

버전 1.4

버전 1.4.0-alpha01

2023년 10월 18일

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

API 변경사항

  • RecyclerView$LayoutManager#isLayoutReversed API를 추가합니다. 추가했습니다. (I4970e)

버그 수정

  • 애니메이션 중에 산발적인 비정상 종료를 일으키는 버그를 수정했습니다. (I42f22b) (1.3.2에도 포함됨)

버전 1.3.2

버전 1.3.2

2023년 10월 18일

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

버그 수정

  • 애니메이션 중에 산발적인 비정상 종료를 일으키는 버그를 수정했습니다. 추가했습니다. (I42f22b)

버전 1.3.1

버전 1.3.1

2023년 7월 26일

androidx.recyclerview:recyclerview:1.3.1이 1.3.1-rc01 이후 변경사항 없이 출시되었습니다. 버전 1.3.1에 포함된 커밋을 확인하세요.

이전 출시의 출시 노트는 출시 노트 페이지를 참조하세요.

버전 1.3.1-rc01

2023년 5월 24일

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

비정상 종료를 방지하려면 RecyclerView의 이 버전으로 업데이트할 때 ViewPager2의 사용자는 1.1.0-beta02 이상으로 업데이트해야 합니다.

API 변경사항

  • 앱에서 RecyclerView 관련 문제를 디버깅하는 데 도움이 될 수 있는 새로운 setDebugAssertionsEnabledsetVerboseLoggingEnabled 메서드를 추가합니다. 추가했습니다. (I514b9)

버그 수정

  • onBind를 호출할 때 일시적으로 분리된 뷰를 일시적으로 다시 연결하여 ViewTreeLifecycleOwner (ComposeView 포함) 사용자의 비정상 종료 문제를 해결했습니다. 추가했습니다. (I7244f2c, b/265347515, b/283288295)

버전 1.3.0

버전 1.3.0

2023년 3월 8일

androidx.recyclerview:recyclerview:1.3.0이 1.3.0-rc01 이후 변경사항 없이 출시되었습니다. 버전 1.3.0에 포함된 커밋을 확인하세요.

1.2.0 이후 중요 변경사항

  • 이 버전에는 Jetpack Compose와 함께 사용할 때 성능 개선사항 (이전에 1.3.0-alpha021.3.0-beta01에 포함됨)이 포함되어 있습니다. Compose 1.2.0-beta02 이상을 사용 중이고 이전 상호 운용성 가이드라인에 설명된 MyComposeAdapterDisposeOnViewTreeLifecycleDestroyed ViewCompositionStrategy를 사용하고 있었다면 이들 항목은 기본 상태보다 더 이상 개선되지 않으므로 삭제해야 합니다.
  • SpanSizeLookup와 같은 ViewHolder가 없는 상황에서 래핑된 어댑터 정보를 검색할 수 있도록 새로운 ConcatAdapter.getWrappedAdapterAndPosition 메서드가 추가되었습니다. (I2bd4c, b/191543920)

버전 1.3.0-rc01

2022년 9월 21일

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

  • 마지막 출시 이후 변경사항이 없습니다.

버전 1.3.0-beta02

2022년 8월 10일

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

API 변경사항

  • 1.3.0-beta01에 추가된 null 허용 여부 주석이 Kotlin 사용자와 소스 호환되지 않는 중요한 변경사항을 표현했기 때문에 삭제되었습니다. (I7A258, I1557E6, I8db76)

버전 1.3.0-beta01

2022년 6월 29일

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

새로운 기능

  • 이 베타 출시에는 성능 개선 사항이 포함되어 있습니다(이전에는 Jetpack Compose와 함께 사용할 경우 1.3.0-alpha02에 포함됨) Compose 1.2.0-beta02 이상을 사용 중이며 이전 상호 운용성 가이드라인에 설명된 MyComposeAdapterDisposeOnViewTreeLifecycleDestroyed ViewCompositionStrategy를 사용한 경우 이들 항목을 삭제해야 합니다. 기본 상태에 비해 더 이상 개선되지 않습니다.

API 변경사항

  • 자바 사용자를 위한 린트 경고와 Kotlin 사용자를 위한 상호 운용성을 개선하기 위해 몇몇 메서드와 매개변수에 null 허용 여부 주석을 추가했습니다. 이는 일부 Kotlin 사용자에게는 소스 브레이킹 체인지가 되어 결과적으로 일부 자바 사용자에게 린트 경고/오류가 추가로 발생할 수 있습니다. (I61829, b/236487044; Ia0b6f; I6f119, b/236487209; Ibe1de, b/236487210)

버그 수정

  • a11y 노드 정보 클래스 이름을 설정하여 a11y 서비스에서 그리드가 그리드로 처리되도록 합니다. (I12812)

버전 1.3.0-alpha02

2022년 4월 6일

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

API 변경사항

  • 향후 SDK를 위한 실험용 BuildCompat 메서드를 추가했습니다. (Iafd82, b/207528937)
  • SpanSizeLookup과 같은 ViewHolder가 없는 경우 래핑된 어댑터 정보를 가져올 수 있는 새 ConcatAdapter.getWrappedAdapterAndPosition 메서드를 추가했습니다. (I2bd4c, b/191543920)

버그 수정

  • 새 AndroidX PoolingContainer 라이브러리와 통합 (Ib89d2)
  • 접근성 작업의 스크롤 거리를 조정했습니다. (If74ae)

버전 1.3.0-alpha01

2021년 9월 15일

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

새로운 기능

  • 스트레치 오버스크롤 RecyclerView를 위한 지원이 추가되었습니다. (Iab877)

RecyclerView-Selection 버전 1.2.0

버전 1.2.0-alpha01

2021년 5월 5일

androidx.recyclerview:recyclerview-selection:1.2.0-alpha01가 출시되었습니다. 버전 1.2.0-alpha01에 포함된 커밋을 확인하세요.

버그 수정

  • 항목이 아직 재활용되지 않은 동안 KeyProvider의 키/위치 매핑이 손실되는 문제를 수정합니다. (b/145767095)

버전 1.2.1

버전 1.2.1

2021년 6월 2일

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

버그 수정

  • 이제 ConcatAdapter 내의 ViewHolderonViewRecycled 콜백에서 쿼리될 때 올바른 어댑터 위치를 반환합니다. (b/187339376)

버전 1.2.0

버전 1.2.0

2021년 4월 7일

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

1.1.0 이후 주요 변경사항

ConcatAdapter: 이 새로운 어댑터를 사용하면 동일한 RecyclerView에서 여러 어댑터를 쉽게 연결할 수 있습니다. 자세한 내용은 블로그 게시물을 참고하세요.

지연 상태 복원: RecyclerView 어댑터가 이제 콘텐츠가 로드될 때까지 상태 복원을 지연시킬 수 있습니다. 자세한 내용은 문서를 참고하세요.

버전 1.2.0-rc01

2021년 3월 24일

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

버그 수정

  • 이제 ConcatAdapter.Config.BuilderConfig.DEFAULT와 일치하는 기본값이 있습니다. (b/157169835)

버전 1.2.0-beta02

2021년 2월 24일

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

버그 수정

  • 상단 패딩이 오른쪽 오버스크롤 발광을 야기하여 패딩을 준수하기 위해 아래 방향이 아닌 위쪽의 패딩된 영역 안으로 이동하는 문제를 수정했습니다. (I6b61d, b/118399122)

버전 1.2.0-beta01

2020년 12월 2일

1.2.0-alpha06 이후 변경사항 없이 androidx.recyclerview:recyclerview:1.2.0-beta01이 출시되었습니다. 버전 1.2.0-beta01에 포함된 커밋을 확인하세요.

버전 1.2.0-alpha06

2020년 10월 1일

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

새로운 기능

  • 여러 RecyclerListener를 추가하기 위한 지원을 추가했습니다. (I70ad8, b/145767095)

API 변경사항

  • RecyclerView.setRecyclerListener(RecyclerListener)를 지원 중단했습니다. (I70ad8, b/145767095)

버전 1.2.0-alpha05

2020년 7월 22일

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

버그 수정

  • RecyclerView에 하나의 항목만 있고 그 항목에 포커스가 있는 경우 앞뒤로 포커스가 이동하지 않는 문제를 수정했습니다. (6f36b3)
  • StaggeredGridLayoutManagerArrayIndexOutOfBoundsException 문제를 수정했습니다. (49b601, b/122303625, b/74877618, b/160193663, b/37086625)
  • 특정 상황에서 RecyclerView가 하위 요소를 표시하지 않고 부적절하게 종료되는 측정 버그를 수정했습니다. (89040c, b/138734786)

외부 기여

  • 도움을 주신 Facebook의 콜린 크렌윙클 님께 감사드립니다.

버전 1.2.0-alpha04

2020년 6월 24일

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

API 변경사항

  • 다른 데이터 병합 동작과 혼동하지 않도록 MergeAdapter의 이름이 ConcatAdapter로 변경되었습니다. (c0540c, b/158019211)

버그 수정

  • 모든 표시 항목이 삭제될 때 발생하는 자동 스크롤을 개선했습니다. (fe8670, b/154124815)

버전 1.2.0-alpha03

2020년 4월 29일

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

새로운 기능

  • 이제 RecyclerView에 중첩 스크롤과 호환되는 프로그래매틱 스크롤을 허용하는 nestedScrollBy 메서드가 포함됩니다. (Ibaa58)

버전 1.2.0-alpha02

2020년 4월 1일

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

이 버전 이상의 RecyclerView는 ViewPager2 이전 버전과 호환되지 않습니다. 현재 androidx.viewpager2:viewpager2:1.0.0 이하를 사용 중인 경우 androidx.viewpager2:viewpager2:1.1.0-alpha01로 업데이트해야 합니다.

새로운 기능

  • MergeAdapter

    • MergeAdapter: 여러 어댑터를 선형적으로 결합할 수 있는 새로운 RecyclerView 어댑터입니다.
    MyAdapter adapter1 = ...;
    AnotherAdapter adapter2 = ...;
    MergeAdapter merged = new MergeAdapter(adapter1, adapter2);
    recyclerView.setAdapter(mergedAdapter);
    

    위 샘플의 경우 MergeAdapter는 adapter1에 뒤이어 adapter2의 항목을 나타냅니다.

  • RecyclerView.Adapter 지연 상태 복원:

    • 어댑터에서 레이아웃 상태가 복원되는 시점을 제어할 수 있도록 하는 새로운 API가 RecyclerView.Adapter 클래스에 추가되었습니다.

    • 예를 들면

    myAdapter.setStateRestorationStrategy(StateRestorationStrategy.WHEN_NOT_EMPTY);
    

    를 호출하여 어댑터가 비어 있지 않을 때까지 RecyclerView를 대기시킨 후에 스크롤 위치를 복원할 수 있습니다.

  • CollectionInfo 및 CollectionItemInfo는 더 이상 기본적으로 채워지지 않습니다.

    • 접근성 서비스(예: TalkBack)로 사용자에게 숫자와 항목 색인을 계속 표시하려면 CollectionInfo와 CollectionItemInfo를 직접 채워야 합니다.

    • 프레임워크가 사용자가 인식한 대로 항목의 수를 결정할 수 없기 때문에 이러한 객체는 더 이상 프레임워크에서 채워지지 않습니다(예: 구분자, 헤더 또는 인식된 여러 항목을 나타내는 RecyclerView 항목).

버그 수정

  • 표시 영역 크기가 변경되면 이제 RecyclerView는 표시 영역 밖의 View에 고정하지 않습니다.
  • 첫 번째 목록의 원본 항목이 두 번째 목록에서 여러 번 중복된 경우 diff를 잘못 계산할 수 있는 DiffUtil의 버그를 수정했습니다. (b/123376278 참조)

버전 1.2.0-alpha01

2019년 12월 18일

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

버그 수정

  • RTL 그리기 및 터치 정확성과 관련된 FastScroller의 사소한 문제를 수정했습니다. (b/143789932, aosp/1130438)
  • ItemTouchHelper 애니메이션이 실행되는 동안 ItemTouchHelper를 RecyclerView에서 삭제할 때 발생하는 비정상 종료 문제를 수정했습니다. (b/140447176, aosp/1167575)

버전 1.1.0

버전 1.1.0

2019년 11월 20일

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

1.0.0 이후 중요 변경사항

  • PagerSnapHelperLinearSnapHelper는 이제 clipToPadding 값에 상관없이 RecyclerView의 패딩을 고려합니다. (b/139452422, b/139012032, aosp/1103182, aosp/1106715, aosp/1130728)
  • RecyclerView.setLayoutTransition(LayoutTransition)을 공식적으로 지원 중단했으며 null이 아닌 값으로 호출할 경우 IllegalArgumentException이 발생합니다. 대신 RecyclerView.setItemAnimator(ItemAnimator)를 사용하세요. (aosp/839414)
  • aosp/723649: RecyclerView가 이제 NestedScrollingChild3을 구현하므로 중첩된 모든 스크롤 상위 요소가 중첩 스크롤 거리 사용을 중지하면 이를 알 수 있습니다. 현재 개발자 코드가 RecyclerView.onNestedScroll(View, int, int, int, int, int)을 재정의하는 경우 이 메서드는 더 이상 호출되지 않으므로 대신 RecyclerView.onNestedScroll(View, int, int, int, int, int, int[])을 재정의해야 합니다.
  • RecyclerView에는 이제 테마의 기본 스타일을 설정할 수 있는 기본 스타일 속성 recyclerViewStyle이 있습니다.
  • ViewCompat 접근성 작업 API가 더 이상 RecyclerView ItemDelegate를 중단하지 않습니다.
  • LinearLayoutManager.calculateExtraLayoutSpace(RecyclerView.State, int[])를 재정의하여 연결된 RecyclerView의 각 면에 레이아웃 공간을 얼마나 추가해야 하는지 맞춤설정할 수 있습니다. (aosp/931259)
  • 애니메이션에 걸리는 시간(밀리초)을 지정할 수 있도록 smoothScrollBy의 새로운 오버로드인 RecyclerView#smoothScrollBy(@Px int, @Px int, @Nullable Interpolator, int duration)을 추가했습니다. (aosp/952807 참조)

버전 1.1.0-rc01

2019년 10월 23일

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

버그 수정

  • RecyclerViewAccessibilityDelegate.ItemDelegate를 재정의할 때 발생하는 '애플리케이션 응답 없음' 오류를 수정했습니다. (aosp/1138057, aosp/1133434)

버전 1.1.0-beta05

2019년 10월 9일

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

API 변경사항

  • aosp/1106715aosp/1103182의 후속으로 이제 LinearSnapHelper 및 PagerSnapHelper에서 clipToPadding 값과 상관없이 RecyclerView의 경계 중심에 있는 뷰를 패딩을 제외하고 반환합니다. (aosp/1130728 참조)

버그 수정

  • RecyclerView가 RecyclerView의 하위 요소에 관한 중복된 접근성 노드를 생성하는 문제를 수정했습니다. (aosp/1130618 참조)
  • RecyclerView의 가상 접근성 계층 구조가 작동하지 않는 문제를 해결했습니다.
  • 맞춤 ItemDelegates가 사용되지 않는 문제를 해결했습니다.

버전 1.1.0-beta04

2019년 9월 5일

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

버그 수정

  • PagerSnapHelperLinearSnapHelper는 이제 clipToPadding 값에 상관없이 RecyclerView의 패딩을 고려합니다. (b/139452422, b/139012032, aosp/1103182, aosp/1106715)
  • 중첩된 사전 스크롤로 인해 NestedScrollingParent에서 스크롤할 때 RecyclerView가 터치 가로채기를 차단하지 않는 버그를 수정했습니다. (b/138668210, aosp/1105373). ViewPager2와 같은 라이브러리에 유용합니다.
  • 중첩된 사전 스크롤이 전달되기 전에 이제 RecyclerView가 항상 SCROLL_STATE_DRAGGING으로 이동합니다. (aosp/1105373)
  • 이제 동작이 터치 슬롭을 초과하기 전에 중첩된 사전 스크롤이 실행되지 않습니다. (b/139530818, aosp/1105373)
  • 중첩된 사전 스크롤에 전달된 dxdy 인수는 RecyclerView가 인수에 맞는 방향으로 스크롤할 수 없는 경우 0으로 처리됩니다. (aosp/1105373)

버전 1.1.0-beta03

2019년 8월 15일

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

API 변경사항

  • RecyclerView는 이제 View.onScrollChanged(int l, int t, int oldl, int oldt)를 통해 스크롤 거리를 전달하여 접근성 서비스에 스크롤 변경사항을 정확히 알립니다. (aosp/1007823 참조)

버그 수정

  • RecyclerView 및 접근성과 관련된 주요 버그 스택 오버플로 버그가 수정되었습니다. aosp/1099577을 참조하세요.

버전 1.1.0-beta02

2019년 8월 7일

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

새로운 기능

  • RecyclerView에는 이제 테마의 기본 스타일을 설정할 수 있는 기본 스타일 속성 recyclerViewStyle이 있습니다.

버그 수정

  • RecyclerView를 스크롤하면 NestedScrollingParent가 스크롤될 때 RecyclerView에서 터치 가로채기가 허용되지 않는 버그를 수정했습니다. b/131115697aosp/1055911을 참조하세요.

버전 1.1.0-beta01

2019년 7월 2일

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

새로운 기능

  • 이제 RecyclerView는 접근성 이벤트를 통해 스크롤이 시작될 때 중첩 스크롤에 참여합니다. aosp/973584를 참조하세요.

버전 1.1.0-alpha06

2019년 6월 5일

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

새로운 기능

  • 애니메이션에 걸리는 시간(밀리초)을 지정할 수 있도록 smoothScrollBy의 새로운 오버로드인 RecyclerView#smoothScrollBy(@Px int, @Px int, @Nullable Interpolator, int duration)을 추가했습니다. (aosp/952807 참조)

API 변경사항

  • GridLayoutManagerStaggeredGridLayoutManager는 더 이상 접근성을 위해 전체 스팬 항목에 자동으로 헤더라는 라벨을 지정하지 않습니다. (aosp/969703)
  • recyclerview-selection에서 선택 순서(만든 시간순)를 유지합니다. (aosp/937279)

버그 수정

  • 중첩 스크롤 상황에서 RecyclerView이 잘못된 속도로 플링하는 버그를 수정했습니다. (aosp/961642 참고)
  • recyclerview-selection의 안정성을 개선했습니다. (aosp/960213, aosp/926296)

버전 1.1.0-alpha05

2019년 5월 7일

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

새로운 기능

  • LinearLayoutManager.calculateExtraLayoutSpace(RecyclerView.State, int[])를 재정의하여 연결된 RecyclerView의 각 면에 레이아웃 공간을 얼마나 추가해야 하는지 맞춤설정할 수 있습니다. (aosp/931259 참조)

API 변경사항

  • DividerItemDecoration 드로어블을 가져오기 위한 API를 추가했습니다. (aosp/937282)
  • LinearLayout.getExtraLayoutSpace(RecyclerVew.State)를 지원 중단하고 대신 양쪽에 맞춤형 추가 레이아웃 공간을 가질 수 있는 새로운 메커니즘을 사용합니다. 새 메서드는 LinearLayout.calculateExtraLayoutSpace(RecyclerView.state, int[])입니다. (aosp/931259 참조)

버그 수정

  • 동작 선택을 삭제했습니다. (aosp/940781)
  • 선택 순서(만든 시간순)를 유지합니다. (b/128455535)

버전 1.1.0-alpha04

2019년 4월 3일

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

버그 수정

  • RV OnItemTouchListener에서 이전에 ACTION_UP을 가로챌 수 없었기 때문에 OnItemTouchListener에서 다른 코드가 ACTION_UP에 응답하는 것을 차단하지 못했습니다. 이 버그를 이제 수정했습니다. (aosp/916137)

버전 1.1.0-alpha03

2019년 3월 13일

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

새로운 기능

  • GridLayoutManager: 고해상도 GridLayoutManager 스크롤바 치수 추정을 선택합니다. (aosp/838836 참조)
    • 범위 정보를 사용하여 GridLayoutManager의 스크롤바 치수를 추정합니다.
    • 사용 설정하려면 GridLayoutManager#setUsingSpansToEstimateScrollbarDimensions(boolean)를 true로 전달하여 호출합니다.
    • 자세한 내용은 GridLayoutManager#setUsingSpansToEstimateScrollbarDimensions(boolean) 관련 문서를 참조하세요.

버그 수정

  • 접근성: ViewHolder를 재활용한 후 다시 바인딩하면 RecyclerView의 RecyclerViewAccessibilityDelegate에 연결된 ItemDelegate가 ViewHolder의 itemView에 연결되지 않아 접근성이 손상되는 버그가 있었습니다. 이 버그는 이제 수정되었습니다. (aosp/917740 참조)

버전 1.1.0-alpha02

2019년 1월 30일

androidx.recyclerview:recyclerview 1.1.0-alpha02가 출시되었습니다.

API 변경사항

  • RecyclerView.setLayoutFrozen(boolean)RecyclerView.isLayoutFrozen()을 지원 중단하고 RecyclerView.suppressLayout(boolean)RecyclerView.isLayoutSuppressed()로 대체했습니다. (aosp/839414)
  • RecyclerView.setLayoutTransition(LayoutTransition)을 공식적으로 지원 중단했으며 null이 아닌 값으로 호출할 경우 IllegalArgumentException이 발생합니다. (aosp/839414 참조)

버그 수정

  • RV에서 SmoothScroller가 중지되지 않는 버그를 수정했습니다. (aosp/843741)
  • 스크롤 애니메이션이 끝날 때 SCROLL_STATE_IDLE를 호출할 수 없는 버그를 수정했습니다. aosp/812576을 참조하세요.

버전 1.1.0-alpha01

2018년 12월 3일

androidx.recyclerview 1.1.0-alpha01androidx.recyclerview-selection 1.1.0-alpha01이 출시되었습니다.

androidx.recyclerview 1.1.0-alpha01

API 변경사항

  • aosp/723649: RecyclerView가 이제 NestedScrollingChild3을 구현하므로 중첩된 모든 스크롤 상위 요소가 중첩 스크롤 거리 사용을 중지하면 이를 알 수 있습니다. 현재 개발자 코드가 RecyclerView.onNestedScroll(View, int, int, int, int, int)을 재정의하는 경우 이 메서드는 더 이상 호출되지 않으므로 대신 RecyclerView.onNestedScroll(View, int, int, int, int, int, int[])을 재정의해야 합니다.

버그 수정

  • TransitionManager를 사용하여 RecyclerView의 항목을 접거나 펼칠 때 발생하는 비정상 종료 문제를 수정했습니다. (b/37129527)
  • RecyclerView.OnItemTouchListener의 동작이 뷰 시스템의 onInterceptTouchEventonTouchEvent 동작과 일치하지 않는 버그를 수정했습니다. (aosp/721235)
  • 부드러운 스크롤과 관련된 극단적인 케이스의 일부 버그를 수정했습니다. (aosp/729718, aosp/747168, aosp/812576)
  • PagerSnapHelper에서 일반적이지 않은 하위 뷰를 처리하기 위한 맞추기 전략을 수정했습니다. (aosp/795752)

androidx.recyclerview-selection 1.1.0-alpha01

버그 수정

  • 선택을 삭제하여 데이터 세트가 변경된 경우에 발생하는 ConcurrentModificationException을 수정했습니다.

RecyclerView-Selection 버전 1.1.0

RecyclerView-Selection 버전 1.1.0

2021년 1월 27일

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

1.0.0 이후 주요 변경사항

  • 다양한 방면에서 안정성을 개선했습니다.
  • SelectionTracker.BuilderwithGestureTooltypeswithPointerTooltypes 메서드를 지원 중단했습니다. 이러한 메서드는 향후 버전에서 삭제될 예정입니다.

RecyclerView-Selection 버전 1.1.0-rc03

2020년 10월 1일

androidx.recyclerview:recyclerview-selection:1.1.0-rc03가 출시되었습니다. 버전 1.1.0-rc03에 포함된 커밋을 확인하세요.

버그 수정

수정을 테스트하고 의견을 제공하여 도움을 주신 스테판 키슬러님께 감사드립니다.

  • 활성 선택 중 하위 View의 OnClickListener가 예기치 않게 호출되는 문제를 수정했습니다.
  • 마우스 핸들러(밴드 선택) > 예기치 않은 스크롤을 정상적으로 처리합니다. (b/167821507)

RecyclerView-Selection 버전 1.1.0-rc02

2020년 9월 2일

androidx.recyclerview:recyclerview-selection:1.1.0-rc02가 출시되었습니다. 버전 1.1.0-rc02에 포함된 커밋을 확인하세요.

주요 기능

  • 입력 처리에서 1.0의 여러 회귀 문제가 해결되었습니다.
  • onRequestDisallowInterceptTouchEvent를 준수하도록 라이브러리를 업데이트하여 ItemTouchHelper와 잘 작동할 수 있습니다. 스와이프만 하면 됩니다.

버그 수정

  • 선택 라이브러리에서 GestureDetector 이벤트를 잘못 해석하여 활성 선택 중에 탭이 누락되는 문제를 수정했습니다. (b/165030422)
  • 어댑터에서 삭제된 항목을 반영하도록 선택이 업데이트되지 않는 문제를 수정했습니다. (b/138932671)
  • SelectionTracker에 활성 선택이 있는 동안 RecyclerView 항목이 onClick 이벤트를 발생시키는 문제를 수정했습니다. (b/161162268)
  • 이제 onRequestDisallowInterceptTouchEvent를 올바르게 처리합니다.
  • Q에서 마우스 스크롤 중에 ”Cannot call this method in a scroll callback”이 표시되는 문제가 수정되었습니다.
  • RecyclerView 인스턴스의 요구사항을 명시하도록 문서(특히 StableIdKeyProvider의 문서)가 업데이트되었습니다.

Recyclerview-Selection 버전 1.1.0-rc01

2020년 2월 5일

androidx.recyclerview:recyclerview-selection:1.1.0-rc01가 출시되었습니다. 버전 1.1.0-rc01에 포함된 커밋을 확인하세요.

버그 수정

  • RecyclerView에서 스크롤 가능한 AppBarLayout으로 상호작용하는 경우 동작을 선택하여 스크롤하기 어렵던 문제를 수정했습니다. (aosp/1193934)

RecyclerView-Selection 버전 1.1.0-beta01

2019년 12월 4일

androidx.recyclerview:recyclerview-selection:1.1.0-beta01가 출시되었습니다. 버전 1.1.0-beta01에 포함된 커밋을 확인하세요.

내부 상태의 관리와 방어적 검사와 관련된 안정성이 전반적으로 개선되었습니다.

버그 수정

API 변경사항

  • 누락된 선택 키 유형 매개변수를 클래스와 메서드에 추가했습니다.
  • 지원 중단된 메서드:
    • SelectionTracker.Builder#withPointerTooltype
    • SelectionTracker.Builder#withGestureTooltype
    • 이러한 메서드의 목적은 개발자가 포인터 또는 동작을 기본값* 이외의 도구 유형에 매핑할 수 있도록 하는 것이었습니다. 이 목적은 좋았지만 좀 더 사용해 본 결과 입력 동작에 관한 사용자의 기대치가 도구 유형에 따라 매우 달랐습니다. 또한 '수동' 스타일러스는 Android 입력 시스템에서 FINGER 도구 유형입니다.
    • 기본 도구 유형은 동작의 경우 FINGER이고 포인터의 경우 MOUSE입니다.