728x90
안녕하세요
오늘은 SwipeRefreshLayout 을 사용하여, 새로고침 기능을 구현해보도록 하겠습니다.
SwipeRefreshLayout은 사용자가 화면을 위에서 아래로 스와이프 하여 새로고침할 수 있도록 만들어진 레이아웃입니다.
일반적으로 리스트나 데이터를 화면에 표시할 때, 화면을 아래로 당겨 새로고침을 할 수 있는 기능을 제공하기 위해 사용됩니다.
추가적으로 로딩 애니메이션을 제공해 데이터 로딩 중이라는 것을 사용자에게 시각적으로 나타낼 수 있습니다.
이번 포스팅에서는 SwipeRefreshLayout을 사용해 간단하게 새로고침 기능을 구현하는 방법을 알아보겠습니다.
우선build.gradle(Module: app) 파일에 AndroidX SwipeRefreshLayout 의존성을 추가합니다.
dependencies {
implementation ("androidx.swiperefreshlayout:swiperefreshlayout:1.1.0")
}
전체 코드입니다.
MainActivity.java
public class MainActivity extends AppCompatActivity {
private SwipeRefreshLayout swipeRefreshLayout;
private ListView listView;
private ArrayAdapter<String> adapter;
private ArrayList<String> items;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
swipeRefreshLayout = findViewById(R.id.swipeRefreshLayout);
listView = findViewById(R.id.listView);
// 리스트에 표시할 데이터 초기화
items = new ArrayList<>(Arrays.asList("아이템 1", "아이템 2", "아이템 3", "아이템 4", "아이템 5" ));
adapter = new ArrayAdapter<>(this, android.R.layout.simple_list_item_1, items);
listView.setAdapter(adapter);
// 새로고침 동작 설정
swipeRefreshLayout.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() {
@Override
public void onRefresh() {
// 새 데이터를 로드하는 동작 시뮬레이션 (2초 지연 후)
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
// 새로고침 후 아이템 추가
items.add("새로운 아이템 " + (items.size() + 1));
adapter.notifyDataSetChanged(); // 리스트 갱신
// 새로고침 애니메이션 종료
swipeRefreshLayout.setRefreshing(false);
}
}, 1000); // 1초 대기
}
});
}
}
activity.xml
<?xml version="1.0" encoding="utf-8"?>
<androidx.swiperefreshlayout.widget.SwipeRefreshLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/swipeRefreshLayout"
android:layout_width="match_parent"
android:layout_height="match_parent">
<ListView
android:id="@+id/listView"
android:layout_width="match_parent"
android:layout_height="match_parent"/>
</androidx.swiperefreshlayout.widget.SwipeRefreshLayout>
swipeRefreshLayout의 setOnRefreshListener 메소드를 사용하여, 새로고침 동작을 감지합니다.
그리고 새로고침시 할 동작을 지정후에, setRefreshing(false) 메소드로 새로고침 애니메이션을 종료해 줘야 합니다.
시연영상 입니다.
'안드로이드 자바' 카테고리의 다른 글
[Java][Android] 토스트(Toast) 메시지 커스텀하기 (2) | 2024.10.27 |
---|---|
[JAVA][Android] Palette를 사용하여 이미지, 사진 색상 정보 추출하기 (6) | 2024.10.23 |
[JAVA][Android] TextUtils 클래스 사용해서 텍스트 문자열 처리하기 (0) | 2024.10.17 |
[JAVA][Android] TextInputLayout 사용해서 EditText에 오류메시지 등 표시하기 (0) | 2024.10.15 |
[JAVA][Android] 안드로이드 ImageSwitcher을 사용하여 부드럽게 이미지 전환하기 (2) | 2024.10.13 |