Notice
Recent Posts
Recent Comments
Link
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 |
Tags
- compose
- android studio
- activity
- 우테코 6기
- moshi
- coil
- 안드로이드 스튜디오
- 로또 미션
- buildSrc
- 프리코스
- 우테코
- 멀티모듈
- Android
- recyclerview
- onscrollstatechanged
- 코틀린
- 안드로이드
- serialization
- Glide
- 컴포즈
- 4대 컴포넌트
- 이미지 로딩
- 최상단
- layoutinflater
- 우아한테크코스
- GSON
- broadcast reciver
- EditText Button
- 안드로이드 키보드
- constraint
Archives
- Today
- Total
정답보다 해답을
[Android] SwipeRefreshLayout 새로고침 구현 본문
문제점
Firebase에서 제공하는 addValueEventListener()를 사용하여 데이터를 읽어오니
실시간으로 받아오기 때문에 내 프로젝트 요구사항에는 맞지 않는다고 판단했다.
여러 사용자가 게시글을 작성하면 실시간으로 업데이트 되는 현상이 불편함을 줄 수 있음.
그래서 addListenerForSingleValueEvent()를 사용하기로 했다.
둘의 차이점은 실시간 데이터를 읽어오기와 한번만 읽어오기이다.
해결방안
우선 화면을 구성할때 데이터를 한 번 읽어오고 새로고침하여 데이터를 새로 받오도록 구현해야겠다!
사용방법
// Swipe
implementation("androidx.swiperefreshlayout:swiperefreshlayout:1.1.0")
SwipeRefeshLayout을 사용하기 위해서는 아래 종속성을 build.gradle(. app) dependencies의 추가해주어야 한다.
그리고 레이아웃의 최상단 태그를 스와이프로 변경해주면 된다.
binding.refreshLayout.setOnRefreshListener {
loadPostData()
binding.refreshLayout.isRefreshing = false
}
레이아웃의 id를 정의하고,
setOnRefreshListener를 통해 스와이프시 실핼할 이벤트를 정의할 수 있다.
나는 데이터를 불러오는 것을 넣어주었다.
여기서 isRefreshing = false 를 해주지 않으면 새로고침이 계속 돌아가니 주의하자!!
'Android' 카테고리의 다른 글
| [Android] Menifest, 앱의 자기소개서 (2) | 2024.10.19 |
|---|---|
| [Android] 안드로이드 4대 컴포넌트와 인텐트 (5) | 2024.10.19 |
| [Android] Spannable과 정규식으로 해시태그 기능 만들어보기 (2) | 2024.10.19 |
| [Android] EditText 선택 시 버튼이 올라오는 현상은 왜 그럴까? (4) | 2024.03.12 |
| [Android] [NaverAPI] [ERROR] NoClassDefFoundError 해결 (0) | 2024.03.09 |