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

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

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

เพิ่มการพึ่งพา SwipeRefreshLayout

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

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

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

เพิ่มการดําเนินการรีเฟรชเป็นรายการเมนูแทนที่จะเป็นปุ่มโดยการตั้งค่าแอตทริบิวต์ 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>