앱에 스와이프하여 새로고침 추가

스와이프하여 새로고침 사용자 인터페이스 패턴은 SwipeRefreshLayout 위젯 - 세로 스와이프를 감지하고 고유한 진행률 표시줄을 표시하며 콜백을 트리거합니다. 메서드를 사용할 수 있습니다. 위젯을 레이아웃 파일에 ListView 또는 GridView 및 사용자가 스와이프할 때 호출되는 새로고침 동작입니다.

이 페이지에서는 기존 레이아웃에 위젯을 추가하는 방법을 보여줍니다. 새로고침을 추가하는 방법도 보여줍니다. 작업을 작업 모음 오버플로 영역에 추가할 수 있습니다. 그러면 스와이프 동작을 사용할 수 없는 사용자가 외부 기기로 수동으로 업데이트해야 합니다.

SwissRefreshLayout 종속 항목 추가

앱에서 SwipeRefreshLayout를 사용하려면 다음 종속 항목을 build.gradle 파일:

Groovy

dependencies {
    implementation "androidx.swiperefreshlayout:swiperefreshlayout:1.2.0-alpha01"
}

Kotlin

dependencies {
    implementation("androidx.swiperefreshlayout:swiperefreshlayout:1.2.0-alpha01")
}

SwipeRefreshLayout 위젯 추가

기존 앱에 스와이프하여 새로고침 위젯을 추가하려면 SwipeRefreshLayout를 단일 ListView 또는 GridView의 상위 요소입니다. SwipeRefreshLayout는 단일 ListView 또는 하위 항목 GridView

다음 예는 SwipeRefreshLayout 위젯을 ListView가 포함된 기존 레이아웃 파일:

<androidx.swiperefreshlayout.widget.SwipeRefreshLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/swiperefresh"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <ListView
        android:id="@android:id/list"
        android:layout_width="match_parent"
        android:layout_height="match_parent" />

</androidx.swiperefreshlayout.widget.SwipeRefreshLayout>

SwipeRefreshLayout 위젯을 ListFragment입니다. 만약 레이아웃에 ID가 "@android:id/list"ListView, 즉 스와이프하여 새로고침 기능이 자동으로 지원됩니다. 그러나 이러한 방식으로 ListView는 기본 ListFragment 뷰 구조를 대체합니다. 만약 기본 뷰 구조를 사용하려는 경우 SwipeRefreshLayout의 일부를 재정의함 및 ListFragment 동작

작업 모음에 새로고침 작업 추가

스와이프 동작을 할 수 없는 사용자가 다음 작업을 할 수 있도록 앱의 작업 모음에 새로고침 작업을 추가하세요. 수동 업데이트를 트리거합니다 예를 들어 접근성 요구사항이 있는 사용자는 작업 모음 작업을 트리거할 수 있습니다. 키보드 및 D패드와 같은 외부 기기 사용

속성을 설정하여 새로고침 작업을 버튼이 아닌 메뉴 항목으로 추가합니다. android:showAsAction=never 작업을 버튼으로 표시하면 사용자는 새로고침 버튼 작업은 스와이프하여 새로고침 작업과 다릅니다. 새로고침 작업 실행 작업 표시줄에 눈에 잘 띄지 않기 때문에 사용자가 스와이프 동작으로 수동 업데이트를 수행하도록 권장 D패드 사용자가 찾을 수 있는 접근성 옵션을 그대로 유지합니다.

다음 코드는 오버플로 영역에 스와이프하여 새로고침 작업을 추가하는 방법을 보여줍니다.

<menu xmlns:android="http://schemas.android.com/apk/res/android" >
    <item
        android:id="@+id/menu_refresh"
        android:showAsAction="never"
        android:title="@string/menu_refresh"/>
</menu>