Uygulamanıza yenilemek için kaydırın

Compose yöntemini deneyin
Jetpack Compose, Android için önerilen kullanıcı arayüzü araç setidir. Compose'da yenilemek için çekme işlemini nasıl kullanacağınızı öğrenin.

Yenilemek için kaydırma kullanıcı arayüzü deseni tamamen SwipeRefreshLayout widget'ında uygulanır. Bu widget, dikey kaydırmayı algılar, belirgin bir ilerleme çubuğu gösterir ve uygulamanızda geri çağırma yöntemlerini tetikler. Widget'ı ListView veya GridView öğesinin üst öğesi olarak düzen dosyanıza ekleyip kullanıcı kaydırdığında çağrılan yenileme davranışını uygulayarak bu davranışı etkinleştirin.

Bu sayfada, widget'ın mevcut bir düzene nasıl ekleneceği gösterilmektedir. Ayrıca, kaydırma hareketini kullanamayan kullanıcıların harici bir cihazla manuel güncelleme başlatabilmesi için işlem çubuğu taşma alanına yenileme işleminin nasıl ekleneceği de gösterilmektedir.

SwipeRefreshLayout bağımlılığını ekleyin

Uygulamanızda SwipeRefreshLayout kullanmak için build.gradle dosyanıza aşağıdaki bağımlılığı ekleyin:

Modern

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

Kotlin

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

SwipeRefreshLayout widget'ını ekleme

Yenilemek için kaydırma widget'ını mevcut bir uygulamaya eklemek üzere SwipeRefreshLayout öğesini tek bir ListView veya GridView öğesinin üst öğesi olarak ekleyin. SwipeRefreshLayout yalnızca tek bir ListView veya GridView alt öğesini destekler.

Aşağıdaki örnekte, SwipeRefreshLayout widget'ının ListView içeren mevcut bir düzen dosyasına nasıl ekleneceği gösterilmektedir:

<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 widget'ını ListFragment ile de kullanabilirsiniz. Düzen, "@android:id/list" kimlikli bir ListView içeriyorsa yenilemek için kaydırma işlevi otomatik olarak desteklenir. Ancak ListView öğesini bu şekilde açıkça bildirmek, varsayılan ListFragment görünüm yapısını geçersiz kılar. Varsayılan görünüm yapısını kullanmak istiyorsanız SwipeRefreshLayout ve ListFragment davranışının bazı bölümlerini geçersiz kılın.

İşlem çubuğuna yenileme işlemi ekleme

Uygulamanızın işlem çubuğuna yenileme işlemi ekleyerek kaydırma hareketi yapamayan kullanıcıların manuel güncelleme başlatmasını sağlayın. Örneğin, erişilebilirlik ihtiyaçları olan kullanıcılar, klavye ve D-pad gibi harici cihazları kullanarak işlem çubuğu işlemlerini tetikleyebilir.

android:showAsAction=never özelliğini ayarlayarak yenileme işlemini düğme olarak değil, menü öğesi olarak ekleyin. İşlemi düğme olarak gösterirseniz kullanıcılar yenileme düğmesi işleminin, kaydırarak yenileme işleminden farklı olduğunu düşünebilir. Yenileme işlemini işlem çubuğunda daha az belirgin hale getirmek, kullanıcıları kaydırma hareketleriyle manuel güncellemeler yapmaya teşvik ederken D-pad kullanıcılarının aradığı erişilebilir seçeneği korur.

Aşağıdaki kodda, taşma alanına yenilemek için kaydırma işleminin nasıl ekleneceği gösterilmektedir:

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