เพิ่มการรองรับท่าทางสัมผัสการย้อนกลับที่คาดการณ์ได้

รูปที่ 1 ภาพตัวอย่างลักษณะของท่าทางสัมผัสเพื่อย้อนกลับแบบคาดการณ์ในโทรศัพท์

ฟีเจอร์การนําทางด้วยท่าทางสัมผัส "กลับโดยประมาณ" ช่วยให้ผู้ใช้ดูตัวอย่างตําแหน่งที่การปัดกลับจะนําไป

เช่น การใช้ท่าทางสัมผัสเพื่อกลับอาจแสดงตัวอย่างภาพเคลื่อนไหวของหน้าจอหลักที่อยู่เบื้องหลังแอป ดังที่แสดงในภาพตัวอย่างในรูปที่ 1

ตั้งแต่ Android 15 เป็นต้นไป ตัวเลือกสำหรับนักพัฒนาแอปสำหรับภาพเคลื่อนไหวแบบคาดเดาการย้อนกลับจะไม่มีให้บริการอีกต่อไป ตอนนี้ภาพเคลื่อนไหวของระบบ เช่น กลับไปที่หน้าจอหลัก ข้ามงาน และข้ามกิจกรรม จะปรากฏในแอปที่เลือกใช้ท่าทางสัมผัสย้อนกลับแบบคาดเดาทั้งหมดหรือที่ระดับกิจกรรม

คุณสามารถทดสอบภาพเคลื่อนไหวการกลับไปที่หน้าแรกนี้ (ตามที่อธิบายไว้ในส่วนถัดไปของหน้านี้)

การรองรับท่าทางสัมผัสเพื่อย้อนกลับแบบคาดการณ์ต้องอัปเดตแอปโดยใช้ API OnBackPressedCallback AppCompat 1.6.0-alpha05 (AndroidX) ขึ้นไปที่ใช้งานร่วมกันได้ย้อนหลัง หรือใช้ OnBackInvokedCallback API แพลตฟอร์มใหม่ แอปส่วนใหญ่ใช้ AndroidX API ที่เข้ากันได้แบบย้อนหลัง

การอัปเดตนี้แสดงเส้นทางการย้ายข้อมูลเพื่อขัดจังหวะการนำทางย้อนกลับอย่างเหมาะสม ซึ่งเกี่ยวข้องกับการเปลี่ยนการขัดจังหวะการย้อนกลับจาก KeyEvent.KEYCODE_BACK และคลาสที่มีเมธอด onBackPressed เช่น Activity และ Dialog ด้วย Back API ของระบบใหม่

วิดีโอเกี่ยวกับ Codelab และ Google I/O

นอกเหนือจากการใช้เอกสารนี้ในหน้านี้แล้ว โปรดลองใช้ Codelab ซึ่งให้บริการการใช้งาน Use Case ทั่วไปของ WebView ที่จัดการท่าทางสัมผัสย้อนกลับแบบคาดการณ์โดยใช้ AndroidX Activity API

นอกจากนี้ คุณยังดูวิดีโอ Google I/O ของเราได้ด้วย ซึ่งจะแสดงตัวอย่างเพิ่มเติมในการใช้งาน AndroidX และ API ของแพลตฟอร์ม

อัปเดตแอปที่ใช้การนําทางกลับเริ่มต้น

การอัปเดตแอปเพื่อสนับสนุนฟีเจอร์นี้นั้นทำได้ง่ายกว่าหากแอปไม่ได้ใช้ลักษณะการย้อนกลับที่กำหนดเอง (กล่าวคือ แอปปล่อยให้ระบบกลับมาทำงานอีกครั้ง) เลือกใช้ฟีเจอร์นี้ตามที่อธิบายไว้ในคู่มือนี้

หากแอปใช้ Fragments หรือคอมโพเนนต์การนำทาง ให้อัปเกรดเป็น AndroidX Activity 1.6.0-alpha05 ขึ้นไปด้วย

อัปเดตแอปที่ใช้การนําทางกลับที่กําหนดเอง

หากแอปใช้ลักษณะการกดย้อนกลับที่กำหนดเอง เส้นทางการย้ายข้อมูลจะแตกต่างกันไป โดยขึ้นอยู่กับว่าแอปใช้ AndroidX หรือไม่ และจัดการการนำทางกลับอย่างไร

แอปของคุณใช้ AndroidX วิธีที่แอปจัดการการนําทางกลับ เส้นทางการย้ายข้อมูลที่แนะนํา (ลิงก์ในหน้านี้)
ใช่ API ของ AndroidX ย้ายข้อมูลการติดตั้งใช้งาน AndroidX ที่มีอยู่กลับ
API ของแพลตฟอร์มที่ไม่รองรับ ย้ายข้อมูลแอป AndroidX ซึ่งมี API การนำทางกลับที่ไม่รองรับไปยัง AndroidX API
ไม่ API ของแพลตฟอร์มที่ไม่รองรับ แต่ย้ายข้อมูลได้ ย้ายข้อมูลแอปที่ใช้ API การนําทางกลับที่ไม่รองรับไปยัง API ของแพลตฟอร์ม
API ของแพลตฟอร์มที่ไม่รองรับ แต่ย้ายข้อมูลไม่ได้ เลื่อนการเลือกรับจนกว่าฟีเจอร์นี้จะกลายเป็นฟีเจอร์ที่ต้องใช้งาน

ย้ายข้อมูลการใช้งานการนําทางกลับของ AndroidX

Use Case นี้พบบ่อยที่สุด (และแนะนํามากที่สุด) ซึ่งมีผลกับแอปใหม่หรือแอปที่มีอยู่ที่ใช้การจัดการการนำทางด้วยท่าทางสัมผัสที่กำหนดเองด้วย OnBackPressedDispatcher ตามที่อธิบายไว้ในระบุการนําทางย้อนกลับที่กําหนดเอง

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

  1. โปรดอัปเกรดเป็น AndroidX Activity 1.6.0-alpha05 เพื่อให้ API ที่ใช้ OnBackPressedDispatcher API (เช่น ฟragment และคอมโพเนนต์การนำทาง) ทำงานร่วมกับท่าทางสัมผัสย้อนกลับแบบคาดการณ์ได้อย่างราบรื่น

    // In your build.gradle file:
    dependencies {
    
    // Add this in addition to your other dependencies
    implementation "androidx.activity:activity:1.6.0-alpha05"
    
  2. เลือกใช้ท่าทางสัมผัสการย้อนกลับที่คาดการณ์ได้ตามที่อธิบายไว้ในหน้านี้

ย้ายข้อมูลแอป AndroidX ที่มี API การนำทางกลับที่ไม่รองรับไปยัง AndroidX API

หากแอปใช้ไลบรารี AndroidX แต่ติดตั้งใช้งานหรืออ้างอิง API การนำทางกลับที่ไม่รองรับ คุณจะต้องเปลี่ยนไปใช้ AndroidX API เพื่อรองรับลักษณะการทำงานใหม่

วิธีย้ายข้อมูล API ที่ไม่รองรับไปยัง AndroidX API

  1. ย้ายข้อมูลตรรกะการจัดการ Back ของระบบไปยัง OnBackPressedDispatcher ของ AndroidX ด้วยการติดตั้งใช้งาน OnBackPressedCallback ดูคําแนะนําโดยละเอียดได้ที่หัวข้อระบุการนําทางกลับที่กําหนดเอง

  2. ปิดใช้ OnBackPressedCallback เมื่อพร้อมที่จะหยุดขัดจังหวะท่าทางสัมผัสย้อนกลับ

  3. หยุดการขัดจังหวะเหตุการณ์ Back ผ่าน OnBackPressed หรือ KeyEvent.KEYCODE_BACK

  4. อย่าลืมอัปเกรดเป็น AndroidX Activity 1.6.0-alpha05

    // In your build.gradle file:
    dependencies {
    
    // Add this in addition to your other dependencies
    implementation "androidx.activity:activity:1.6.0-alpha05"
    
  5. เมื่อย้ายข้อมูลแอปเรียบร้อยแล้ว ให้เลือกใช้ท่าทางสัมผัสการย้อนกลับแบบคาดการณ์ (ตามที่อธิบายไว้ในหน้านี้) เพื่อดูภาพเคลื่อนไหวของระบบเมื่อนำทางกลับบ้าน

ย้ายข้อมูลแอปที่ใช้ API การนําทางกลับที่ไม่รองรับไปยัง API ของแพลตฟอร์ม

หากแอปใช้ไลบรารี AndroidX ไม่ได้ แต่ใช้หรืออ้างอิงการนําทางกลับที่กําหนดเองโดยใช้ API ที่ไม่รองรับแทน คุณต้องย้ายข้อมูลไปยัง OnBackInvokedCallback platform API

ทําตามขั้นตอนต่อไปนี้เพื่อย้ายข้อมูล API ที่ไม่รองรับไปยัง Platform API

  1. ใช้ OnBackInvokedCallback API ใหม่ในอุปกรณ์ที่ใช้ Android 13 ขึ้นไป และใช้ API ที่ไม่รองรับในอุปกรณ์ที่ใช้ Android 12 หรือต่ำกว่า

  2. ลงทะเบียนตรรกะย้อนกลับที่กำหนดเองใน OnBackInvokedCallback ด้วย onBackInvokedDispatcher วิธีนี้จะช่วยป้องกันไม่ให้กิจกรรมปัจจุบันเสร็จสิ้น และ Callback ของคุณจะมีโอกาสโต้ตอบกับการดำเนินการ "กลับ" เมื่อผู้ใช้ดำเนินการตามการนำทาง "กลับ" ของระบบจนเสร็จสิ้น

  3. ยกเลิกการลงทะเบียน OnBackInvokedCallback เมื่อต้องการหยุดขัดจังหวะท่าทางสัมผัสเพื่อย้อนกลับ มิเช่นนั้น ผู้ใช้อาจเห็นลักษณะการทำงานที่ไม่พึงประสงค์เมื่อใช้การนําทางกลับของระบบ เช่น "ค้าง" ระหว่างมุมมองต่างๆ และบังคับให้ผู้ใช้ปิดแอป

    ตัวอย่างวิธีย้ายข้อมูลตรรกะออกจาก onBackPressed มีดังนี้

    Kotlin

    @Override
    fun onCreate() {
        if (BuildCompat.isAtLeastT()) {
            onBackInvokedDispatcher.registerOnBackInvokedCallback(
                OnBackInvokedDispatcher.PRIORITY_DEFAULT
            ) {
                /**
                 * onBackPressed logic goes here. For instance:
                 * Prevents closing the app to go home screen when in the
                 * middle of entering data to a form
                 * or from accidentally leaving a fragment with a WebView in it
                 *
                 * Unregistering the callback to stop intercepting the back gesture:
                 * When the user transitions to the topmost screen (activity, fragment)
                 * in the BackStack, unregister the callback by using
                 * OnBackInvokeDispatcher.unregisterOnBackInvokedCallback
                 * (https://developer.android.com/reference/kotlin/android/window/OnBackInvokedDispatcher#unregisteronbackinvokedcallback)
                 */
            }
        }
    }

    Java

    @Override
    void onCreate() {
      if (BuildCompat.isAtLeastT()) {
        getOnBackInvokedDispatcher().registerOnBackInvokedCallback(
            OnBackInvokedDispatcher.PRIORITY_DEFAULT,
            () -> {
              /**
               * onBackPressed logic goes here - For instance:
               * Prevents closing the app to go home screen when in the
               * middle of entering data to a form
               * or from accidentally leaving a fragment with a WebView in it
               *
               * Unregistering the callback to stop intercepting the back gesture:
               * When the user transitions to the topmost screen (activity, fragment)
               * in the BackStack, unregister the callback by using
               * OnBackInvokeDispatcher.unregisterOnBackInvokedCallback
               * (https://developer.android.com/reference/kotlin/android/view/OnBackInvokedDispatcher#unregisteronbackinvokedcallback)
               */
            }
        );
      }
    }
  4. หยุดการสกัดกั้นเหตุการณ์ย้อนกลับผ่าน OnBackPressed หรือ KeyEvent.KEYCODE_BACK สำหรับ Android 13 ขึ้นไป

  5. เมื่อย้ายข้อมูลแอปเรียบร้อยแล้ว ให้เลือกใช้ท่าทางสัมผัสเพื่อย้อนกลับแบบคาดการณ์ (ตามที่อธิบายไว้ในหน้านี้) เพื่อให้ OnBackInvokedCallback ใช้งานได้

คุณสามารถลงทะเบียน OnBackInvokedCallback กับ PRIORITY_DEFAULT หรือ PRIORITY_OVERLAY ซึ่งไม่พร้อมใช้งานใน AndroidX OnBackPressedCallback ที่คล้ายกัน การลงทะเบียนการโทรกลับด้วย PRIORITY_OVERLAY จะมีประโยชน์ในบางกรณี

ซึ่งจะมีผลเมื่อคุณย้ายข้อมูลจาก onKeyPreIme() และ Callback ของคุณต้องได้รับการจับมือกลับแทน IME ที่เปิดอยู่ IME จะลงทะเบียน Callback กับ PRIORITY_DEFAULT เมื่อเปิด ลงทะเบียนการเรียกกลับด้วย PRIORITY_OVERLAY เพื่อให้แน่ใจว่า OnBackInvokedDispatcher จะส่งท่าทางสัมผัสกลับไปยังการเรียกกลับแทน IME ที่เปิดอยู่

เลือกใช้ท่าทางสัมผัสการย้อนกลับที่คาดการณ์ได้

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

หากต้องการเลือกใช้ ให้ตั้งค่า Flag android:enableOnBackInvokedCallback เป็น true ในแท็ก <application> ของ AndroidManifest.xml

<application
    ...
    android:enableOnBackInvokedCallback="true"
    ... >
...
</application>

หากไม่ระบุค่า ค่าเริ่มต้นจะเป็น false และดำเนินการต่อไปนี้

  • ปิดใช้ภาพเคลื่อนไหวของระบบสำหรับท่าทางสัมผัสย้อนกลับแบบคาดเดา
  • ละเว้น OnBackInvokedCallback แต่การเรียกใช้ OnBackPressedCallback จะยังคงทำงานต่อไป

เลือกใช้ที่ระดับกิจกรรม

ตั้งแต่ Android 14 เป็นต้นไป Flag android:enableOnBackInvokedCallback จะช่วยให้คุณเลือกใช้ภาพเคลื่อนไหวของระบบตามการคาดการณ์ที่ระดับกิจกรรมได้ การทำงานลักษณะนี้ทำให้ย้ายแอปกิจกรรมขนาดใหญ่ขนาดใหญ่ไปใช้ท่าทางสัมผัสย้อนกลับแบบคาดเดาได้มากขึ้น ด้วย Android 15 ฟีเจอร์การคาดคะเนกลับจะไม่ได้อยู่หลังตัวเลือกสำหรับนักพัฒนาซอฟต์แวร์อีกต่อไป แอปสามารถเลือกใช้การกดย้อนกลับแบบคาดการณ์ได้ทั้งหมดหรือในระดับกิจกรรม

โค้ดต่อไปนี้แสดงตัวอย่างการใช้ enableOnBackInvokedCallback เพื่อเปิดใช้ภาพเคลื่อนไหวของระบบที่กลับไปยังหน้าแรกจาก MainActivity

<manifest ...>
    <application . . .

        android:enableOnBackInvokedCallback="false">

        <activity
            android:name=".MainActivity"
            android:enableOnBackInvokedCallback="true"
            ...
        </activity>
        <activity
            android:name=".SecondActivity"
            android:enableOnBackInvokedCallback="false"
            ...
        </activity>
    </application>
</manifest>

ในตัวอย่างก่อนหน้านี้ การตั้งค่า android:enableOnBackInvokedCallback=true for ".SecondActivity" จะเปิดใช้ภาพเคลื่อนไหวของระบบข้ามกิจกรรม

โปรดคำนึงถึงข้อควรพิจารณาต่อไปนี้เมื่อใช้ Flag android:enableOnBackInvokedCallback

  • การตั้งค่า android:enableOnBackInvokedCallback=false จะปิดภาพเคลื่อนไหวย้อนกลับแบบคาดการณ์ที่ระดับกิจกรรมหรือที่ระดับแอป ทั้งนี้ขึ้นอยู่กับตำแหน่งที่คุณกำหนดแท็ก และสั่งระบบให้ละเว้นการเรียกไปยัง API ของแพลตฟอร์ม OnBackInvokedCallback อย่างไรก็ตาม การเรียก OnBackPressedCallback จะยังคงทํางานต่อไปเนื่องจาก OnBackPressedCallback เข้ากันได้แบบย้อนหลังและเรียกใช้ onBackPressed API ซึ่งระบบไม่รองรับก่อน Android 13
  • การตั้งค่า Flag enableOnBackInvokedCallback ที่ระดับแอปจะกำหนดค่าเริ่มต้นสำหรับทุกกิจกรรมในแอป คุณลบล้างค่าเริ่มต้นต่อกิจกรรมได้โดยการตั้งค่า Flag ที่ระดับกิจกรรมดังที่แสดงในตัวอย่างโค้ดก่อนหน้านี้

แนวทางปฏิบัติแนะนำสำหรับการติดต่อกลับ

แนวทางปฏิบัติแนะนำในการใช้ระบบการเรียกกลับจากระบบที่รองรับมีดังนี้ BackHandler (สำหรับเขียน), OnBackPressedCallback หรือ OnBackInvokedCallback

ระบุสถานะ UI ที่เปิดและปิดใช้การเรียกกลับแต่ละรายการ

สถานะ UI เป็นพร็อพเพอร์ตี้ที่อธิบาย UI เราขอแนะนําให้ทําตามขั้นตอนระดับสูงเหล่านี้

  1. ระบุสถานะ UI ที่เปิดและปิดใช้การเรียกกลับแต่ละรายการ

  2. กําหนดสถานะนั้นโดยใช้ประเภทตัวเก็บข้อมูลที่เฝ้าสังเกตได้ เช่น StateFlow หรือ Compose State และเปิดหรือปิดใช้การเรียกกลับเมื่อสถานะเปลี่ยนแปลง

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

ใช้การติดต่อกลับของระบบสำหรับตรรกะ UI

ตรรกะ UI กำหนดวิธีแสดง UI ใช้ Callback ของระบบเพื่อเรียกใช้ตรรกะ UI เช่น การแสดงป๊อปอัปหรือการเรียกใช้ภาพเคลื่อนไหว

หากแอปเปิดใช้การเรียกกลับระบบสำหรับการกดย้อนกลับ การเคลื่อนไหวแบบคาดเดาจะไม่ทำงานและคุณต้องจัดการเหตุการณ์การกดย้อนกลับ อย่าสร้างการเรียกกลับเพื่อเรียกใช้ตรรกะที่ไม่เกี่ยวข้องกับ UI เท่านั้น

เช่น หากคุณจะขัดขวางเหตุการณ์ Back เพื่อบันทึกเท่านั้น ให้บันทึกภายในวงจรของกิจกรรมหรือ Fragment แทน

  • สําหรับกรณีกิจกรรมต่อกิจกรรมหรือกรณีจากเหตุการณ์ต่อกิจกรรม ให้บันทึกหาก isFinishing ภายใน onDestroy เป็น true ภายในวงจรของกิจกรรม
  • สําหรับกรณีจากข้อมูลโค้ดหนึ่งไปยังอีกข้อมูลโค้ดหนึ่ง ให้บันทึกหาก isRemoving ภายใน onDestroy เป็นจริงภายในวงจรชีวิตของมุมมองข้อมูลโค้ด หรือบันทึกโดยใช้ onBackStackChangeStarted หรือ onBackStackChangeCommitted เมธอดภายใน FragmentManager.OnBackStackChangedListener

สำหรับกรณี Compose ให้บันทึกภายในการเรียกกลับ onCleared() ของ ViewModel ที่เชื่อมโยงกับปลายทาง Compose นี่เป็นสัญญาณที่ดีที่สุดในการระบุว่ามีการนำปลายทางการเขียนออกจากกองซ้อนด้านหลังและทำลายแล้ว

สร้าง Callback ที่มีหน้าที่รับผิดชอบรายการเดียว

คุณสามารถเพิ่มการเรียกกลับหลายรายการลงในตัวจัดเตรียมได้ ระบบจะเพิ่มการเรียกกลับลงในกองซ้อน ซึ่งการเรียกกลับที่เปิดใช้ซึ่งเพิ่มล่าสุดจะจัดการท่าทางสัมผัสกลับครั้งถัดไป โดยมี 1 การเรียกกลับต่อท่าทางสัมผัสกลับ

การจัดการสถานะ "เปิดใช้" ของคอลแบ็กจะง่ายขึ้นหากคอลแบ็กดังกล่าวมีหน้าที่เพียงอย่างเดียว เช่น

ลำดับของคอลแบ็กในสแต็ก
รูปที่ 2 แผนภาพสแต็ก Callback

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

แบ็กคอลอื่นๆ อาจรวมถึงคอมโพเนนต์ Material ที่รองรับการย้อนกลับแบบคาดการณ์ ทรานซิชัน AndroidX ที่ใช้ Progress API หรือแบ็กคอลที่กำหนดเองอื่นๆ

การทำงานของคอลแบ็กของ childFragmentManager จะทำงานหากคอลแบ็กข้างต้นถูกปิดใช้และกองซ้อนที่ย้อนกลับสำหรับ FragmentManager นี้ไม่ว่างเปล่า โดยที่ childFragmentManager แนบอยู่ใน Fregment ในตัวอย่างนี้ จะมีการปิดใช้ Callback ภายใน

ในทำนองเดียวกัน Callback ภายในของ supportFragmentManager จะทำงานหากปิดใช้ Callback ด้านบนและสแต็กไม่ว่างเปล่า ลักษณะการทำงานนี้มีความสอดคล้องกันเมื่อใช้ FragmentManager หรือ NavigationComponent เพื่อไปยังส่วนต่างๆ เนื่องจาก NavigationComponent ต้องใช้ FragmentManager ในตัวอย่างนี้ แคล็กแบ็กนี้จะทำงานหากผู้ใช้ไม่ได้ป้อนข้อความในแบบฟอร์ม ซึ่งทำให้แคล็กแบ็ก "คุณแน่ใจไหม..." ปิดอยู่

สุดท้าย super.onBackPressed() คือ Callback ระดับระบบที่จะทำงานอีกครั้งหากปิดใช้ Callback ข้างต้น หากต้องการเรียกให้ภาพเคลื่อนไหวของระบบแสดง เช่น การกลับไปที่หน้าจอหลัก กิจกรรมข้ามแอป และงานข้ามแอป กองซ้อนของ supportFragmentManager ต้องว่างเปล่าเพื่อให้การเรียกกลับภายในปิดอยู่

ทดสอบภาพเคลื่อนไหวของท่าทางสัมผัสการย้อนกลับแบบคาดเดา

หากยังใช้ Android 13 หรือ Android 14 อยู่ คุณจะทดสอบภาพเคลื่อนไหวของฟีเจอร์กลับไปที่หน้าแรกซึ่งแสดงในรูปที่ 1 ได้

หากต้องการทดสอบภาพเคลื่อนไหวนี้ ให้ทำตามขั้นตอนต่อไปนี้

  1. ในอุปกรณ์ ให้ไปที่การตั้งค่า > ระบบ > ตัวเลือกสำหรับนักพัฒนาแอป

  2. เลือกภาพเคลื่อนไหวย้อนกลับแบบคาดการณ์

  3. เปิดแอปที่อัปเดตแล้วแล้วใช้ท่าทางสัมผัสการย้อนกลับเพื่อดูการทำงาน