일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 |
- elementAt
- ReactNative
- animation
- mongoose
- Service
- LiveData
- Generic
- union
- recyclerview
- docker
- react native
- Filter
- vuex
- docker-compose
- list
- AWS
- class component
- function
- ConstraintLayout
- enum
- MINUS
- 생명주기
- Interface
- collection
- lifecycle
- Foreign Key
- Kotlin
- Swift
- CLASS
- map
- Today
- Total
개발 일기
RecyclerView Scroll Position 복원 ? 본문
Restore RecyclerView scroll position
You might have had the problem where a RecyclerView loses the scroll position when your Activity/Fragment is re-created. This usually…
medium.com
RecyclerView에 대해서 Activity/Fragment가 재 생성이 됬을 때 스크롤을 잃어 버리는 문제가 있었습니다.
그 이유는 데이터는 비동기적으로 가져오기 때문에 RecyclerView가 layout이 필요할 때 없어서 실패하는 문제였습니다.
근데 이제는 RecyclerView에 새로운 API을 통해서 준비될 때 까지 Layout 복원을 block을 시킬수 있습니다.
올바른 위치를 보장하는 방법은 여러가지가 있지만 그 중 최선의 방법으로 선https://developer.android.com/reference/androidx/recyclerview/widget/MergeAdapter택 된것은 data를 항상 캐싱을 해놔서 첫번째 layout이 넘어가기 전에 Adapter에 data를 넣는 방법입니다.
'recyclerview:1.2.0-alpha02'의 해결책은 세가지의 복구 옵션(StateRestorationPolicy)을 가지는 새로운 Adapter의 함수를 통해서 해결할수가 있습니다.
ALLOW
Default 방법으로 써 RecyclerView에 상태를 복구하는 것을 즉각적으로 움직입니다.
PREVENT_WHEN_EMPTY
adapter 데이터가 비어있지 않을 때 RecyclerView 상태를 복구합니다.
만약에 기본적으로 헤더나 로딩바가 들어있어야 한다면 MergeAdapter을 통해서 모든 Adapter가 준비가 되었을 때 상태를 복구 시킵니다.
PREVENT
모든 복구 상태를 ALLOW or PREVENT_WHEN_EMPTY가 설정이 되기 전까지 연기합니다.
adapter.stateRestorationPolicy = PREVENT_WHEN_EMPTY
'Client > 안드로이드' 카테고리의 다른 글
zoom animation ? (0) | 2020.05.14 |
---|---|
Move views using a fling animation ? (0) | 2020.05.12 |
애니메이션 뷰 이동? (0) | 2020.05.11 |
Animation View Hide ? (0) | 2020.05.04 |
Property animation (0) | 2020.04.28 |