The Android Developer Challenge is back! Submit your idea before December 2.

Menambahkan Geser-untuk-Refresh ke Aplikasi Anda

Pola antarmuka pengguna geser-untuk-refresh diimplementasikan sepenuhnya dalam widget SwipeRefreshLayout yang mendeteksi geseran vertikal, menampilkan status progres khusus, dan memicu metode callback dalam aplikasi Anda. Anda mengaktifkan perilaku ini dengan menambahkan widget ke file tata letak Anda sebagai induk dari ListView atau GridView, dan menerapkan perilaku refresh yang dipanggil saat pengguna melakukan geser.

Tutorial ini menunjukkan kepada Anda cara menambahkan widget ke tata letak yang ada. Tutorial ini juga menunjukkan cara menambahkan tindakan refresh ke area tambahan panel tindakan, sehingga pengguna yang mungkin tidak bisa menggunakan gerakan geser dapat memicu update manual dengan perangkat eksternal.

Menambahkan Widget SwipeRefreshLayout

Untuk menambahkan widget geser untuk refresh ke aplikasi yang ada, tambahkan SwipeRefreshLayout sebagai induk dari satu ListView atau GridView. Ingat bahwa SwipeRefreshLayout hanya mendukung satu turunan ListView atau GridView.

Contoh berikut menunjukkan cara menambahkan widget SwipeRefreshLayout ke file tata letak yang ada yang berisi ListView:

<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>

Anda juga bisa menggunakan widget SwipeRefreshLayout dengan ListFragment. Jika tata letak berisi ListView dengan ID "@android:id/list", fungsi geser-untuk-refresh didukung secara otomatis. Namun, pernyataan ListView secara eksplisit dengan cara ini akan menggantikan struktur tampilan ListFragment default. Jika ingin menggunakan struktur tampilan standar, Anda perlu mengganti bagian dari perilaku SwipeRefreshLayout dan ListFragment.

Menambahkan Tindakan Refresh ke Panel Tindakan

Anda harus menambahkan tindakan refresh ke panel tindakan aplikasi untuk memastikan bahwa pengguna yang mungkin tidak bisa melakukan gestur geser masih bisa memicu update manual. Misalnya, pengguna dengan kebutuhan aksesibilitas bisa memicu tindakan panel tindakan menggunakan perangkat eksternal, seperti keyboard dan D-pad.

Anda harus menambahkan tindakan refresh sebagai item menu, bukan sebagai tombol, dengan menyetel atribut android:showAsAction=never. Jika Anda menampilkan tindakan sebagai tombol, pengguna dapat menganggap bahwa tindakan tombol refresh berbeda dari tindakan geser-untuk-refresh. Dengan membuat tindakan refresh tidak terlalu mencolok di panel tindakan, Anda bisa mendorong pengguna untuk melakukan update manual dengan gerakan geser sambil tetap mempertahankan opsi yang dapat diakses di tempat pengguna D-pad akan mencarinya.

Kode berikut menunjukkan cara menambahkan tindakan geser-untuk-refresh ke area tambahan:

<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>