เพิ่มการปัดเพื่อรีเฟรชลงในแอปของคุณ

ลองใช้วิธีแบบ Compose
Jetpack Compose เป็นชุดเครื่องมือ UI ที่แนะนำสำหรับ Android ดูวิธีดึงเพื่อรีเฟรชใน Compose

รูปแบบอินเทอร์เฟซผู้ใช้แบบเลื่อนเพื่อรีเฟรชจะใช้งานภายในวิดเจ็ต SwipeRefreshLayout ทั้งหมด ซึ่งจะตรวจจับการปัดแนวตั้ง แสดงแถบความคืบหน้าที่โดดเด่น และเรียกใช้เมธอดเรียกกลับในแอปของคุณ เปิดใช้ลักษณะการทำงานนี้โดยเพิ่มวิดเจ็ตลงในไฟล์เลย์เอาต์เป็นองค์ประกอบหลักของ ListView หรือ GridView และใช้ลักษณะการทำงานรีเฟรชที่จะเรียกใช้เมื่อผู้ใช้ปัด

หน้านี้แสดงวิธีเพิ่มวิดเจ็ตลงในเลย์เอาต์ที่มีอยู่ นอกจากนี้ยังแสดงวิธีเพิ่มการทำงานรีเฟรชลงในพื้นที่ล้นของแถบการดำเนินการเพื่อให้ผู้ใช้ที่ไม่สามารถใช้ท่าทางสัมผัสแบบปัดสามารถเรียกใช้การอัปเดตด้วยตนเองด้วยอุปกรณ์ภายนอกได้

เพิ่มทรัพยากร Dependency ของ SwipeRefreshLayout

หากต้องการใช้ SwipeRefreshLayout ในแอป ให้เพิ่มทรัพยากร Dependency ต่อไปนี้ลงในไฟล์ build.gradle

ดึงดูด

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 ได้ด้วย หากเลย์เอาต์มี ListView ที่มีรหัส "@android:id/list" ระบบจะรองรับฟังก์ชันการทำงานแบบเลื่อนเพื่อรีเฟรชโดยอัตโนมัติ อย่างไรก็ตาม การประกาศ ListView อย่างชัดเจนด้วยวิธีนี้จะแทนที่โครงสร้างมุมมอง ListFragment เริ่มต้น หากต้องการใช้โครงสร้างมุมมองเริ่มต้น ให้ลบล้างบางส่วนของลักษณะการทำงาน SwipeRefreshLayout และ ListFragment

เพิ่มการทำงานรีเฟรชลงในแถบการดำเนินการ

เพิ่มการทำงานรีเฟรชลงในแถบการดำเนินการของแอปเพื่อให้ผู้ใช้ที่ไม่สามารถใช้ท่าทางสัมผัสแบบปัดสามารถเรียกใช้การอัปเดตด้วยตนเองได้ เช่น ผู้ใช้ที่มีความต้องการพิเศษด้านการช่วยเหลือพิเศษสามารถเรียกใช้การทำงานของแถบการดำเนินการโดยใช้อุปกรณ์ภายนอก เช่น แป้นพิมพ์และ D-pad

เพิ่มการทำงานรีเฟรชเป็นรายการเมนูแทนที่จะเป็นปุ่มโดยตั้งค่าแอตทริบิวต์ android:showAsAction=never หากคุณแสดงการทำงานเป็นปุ่ม ผู้ใช้อาจคิดว่าการทำงานของปุ่มรีเฟรชแตกต่างจากการทำงานแบบเลื่อนเพื่อรีเฟรช การทำให้การทำงานรีเฟรชไม่เด่นชัดในแถบการดำเนินการจะกระตุ้นให้ผู้ใช้ทำการอัปเดตด้วยตนเองด้วยท่าทางสัมผัสแบบปัด ขณะเดียวกันก็ยังคงมีตัวเลือกที่เข้าถึงได้ซึ่งผู้ใช้ D-pad จะมองหา

โค้ดต่อไปนี้แสดงวิธีเพิ่มการทำงานแบบเลื่อนเพื่อรีเฟรชลงในพื้นที่ล้น

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