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

스와이프하여 새로고침 사용자 인터페이스 패턴은 수직 스와이프를 감지하고 고유한 진행률 표시줄을 표시하고 앱에서 콜백 메서드를 트리거하는 SwipeRefreshLayout 위젯에서 전적으로 구현됩니다. 이 동작은 위젯을 레이아웃 파일에 ListView 또는 GridView의 상위 요소로 추가하고 사용자가 스와이프할 때 호출되는 새로고침 동작을 구현하여 사용 설정합니다.

이 과정에서는 기존 레이아웃에 위젯을 추가하는 방법을 보여줍니다. 또한 스와이프 동작을 사용할 수 없는 사용자가 외부 기기로 수동 업데이트를 트리거할 수 있도록 작업 모음 오버플로 영역에 새로고침 작업을 추가하는 방법도 보여줍니다.

SwipeRefreshLayout 위젯 추가

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

다음 예는 ListView가 포함된 기존 레이아웃 파일에 SwipeRefreshLayout 위젯을 추가하는 방법을 보여줍니다.

<android.support.v4.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" />

    </android.support.v4.widget.SwipeRefreshLayout>

SwipeRefreshLayoutListFragment와 함께 사용할 수도 있습니다. 레이아웃에 ID가 "@android:id/list"ListView가 포함되어 있는 경우 스와이프하여 새로고침 기능이 자동으로 지원됩니다. 하지만 이 방법으로 ListView를 명시적으로 선언하면 기본 ListFragment 뷰 구조가 대체됩니다. 기본 뷰 구조를 사용하려면 SwipeRefreshLayoutListFragment 동작의 일부를 재정의해야 합니다.

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

스와이프 동작을 실행할 수 없는 사용자가 수동 업데이트를 트리거할 수 있도록 하려면 앱의 작업 모음에 새로고침 작업을 추가해야 합니다. 예를 들어 접근성 요구사항이 있는 사용자는 키보드 및 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>