728x90
안녕하세요.
오늘은 리스트뷰나 리사이클러뷰에서 사용할 수 있는 새로고침 기능을 알아보겠습니다.
페이스북이나 인스타그램 앱을 사용하다보면 아래로 당겨서 새로운 게시글을 조회한 적이 있을텐데, 바로 그 기능입니다.
1. 먼저 모듈 단위 Gradle에 dependencies 설정에 다음을 추가해줍니다.
ex) build.gradle(Module:myproject.app)
dependencies {
implementation "androidx.swiperefreshlayout:swiperefreshlayout:1.1.0" //스와이프 레이아웃
}
2. 적용할 RecyclerView를 SwipeRefreshLayout으로 감싸줍니다.
<androidx.swiperefreshlayout.widget.SwipeRefreshLayout
android:id="@+id/swipe"
android:layout_width="match_parent"
android:layout_height="600dp"
android:layout_marginTop="16dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.0"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/tv_list"
app:layout_constraintVertical_bias="0.0">
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/rv_live"
android:layout_width="match_parent"
android:layout_height="600dp"
android:padding="7dp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.0"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/tv_list" />
</androidx.swiperefreshlayout.widget.SwipeRefreshLayout>
3. 해당 화면 액티비티에 onRefreshListener 등록
public class ListActivity extends AppCompatActivity {
private SwipeRefreshLayout swipeRefreshLayout;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
swipeRefreshLayout = findViewById(R.id.swipe);
swipeRefreshLayout.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() {
@Override
public void onRefresh() {
// 새로고침시 할 동작. 화면에서 아래로 드래그 하고 놓았을 때 호출 됩니다.
// 이때 새로고침 화살표가 돌아갑니다.
list.clear();
livelist(); //서버로부터 목록을 조회하는 본인의 로직 작성
//새로고침 종료시키기. 꼭 false로 해주어야 새로고침 동작이 종료됩니다!!
swipeRefreshLayout.setRefreshing(false);
}
});
}
}
'안드로이드 자바' 카테고리의 다른 글
[Java][Android] 간단한 룰렛(원판 돌리기) 만들기 (4) | 2022.11.10 |
---|---|
[Java][Android] photoView 사용하기 (0) | 2022.11.08 |
[Android][Java] Recycleview에 ItemTouchHelper로 스와이프 및 드래그 앤 드롭 동작 구현 (0) | 2022.10.31 |
[JAVA][Android] 화면 녹화 기능 만들기 (0) | 2022.10.30 |
[JAVA][Android] Logger 라이브러리 사용하기 (2) | 2022.10.28 |