ตรวจสอบความเข้ากันได้กับการนำทางด้วยท่าทางสัมผัส

ตั้งแต่ Android 10 (API ระดับ 29) เป็นต้นไป ระบบ Android รองรับการไปยังส่วนต่างๆ ด้วยท่าทางสัมผัสอย่างเต็มรูปแบบ นักพัฒนาแอปต้องดำเนินการ 2 อย่างเพื่อให้แอปของตนเข้ากันได้กับฟีเจอร์นี้

  • ขยายเนื้อหาแอปจากขอบหนึ่งไปอีกขอบหนึ่ง
  • จัดการท่าทางสัมผัสของแอปที่ขัดแย้งกัน

นอกจากนี้ Android 13 (API ระดับ 33) ยังนำเสนอท่าทางสัมผัสการย้อนกลับที่คาดการณ์สำหรับอุปกรณ์ Android เช่น โทรศัพท์ หน้าจอขนาดใหญ่ และอุปกรณ์พับได้ ซึ่งเป็นส่วนหนึ่งของการเปิดตัวแบบหลายปี นักพัฒนาแอปสามารถทำตามขั้นตอนต่างๆ เพื่อให้มั่นใจว่าแอปของตนรองรับท่าทางสัมผัสเพื่อย้อนกลับแบบคาดการณ์

มอบเนื้อหาของแอปแบบไร้ขอบเขต

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

ดูรายละเอียดได้ที่แสดงเนื้อหาแบบเต็มหน้าจอในแอป

จัดการท่าทางสัมผัสของแอปที่ขัดแย้งกัน

รูปแบบการไปยังส่วนต่างๆ ด้วยท่าทางสัมผัสอาจขัดแย้งกับท่าทางสัมผัสที่นักพัฒนาแอปใช้ก่อนหน้านี้ คุณจึงอาจต้องปรับอินเทอร์เฟซผู้ใช้ของแอป

ขัดแย้งกับท่าทางสัมผัสการย้อนกลับ

ท่าทางสัมผัสใหม่ของระบบสำหรับการย้อนกลับคือการปัดเข้าจากขอบด้านซ้ายหรือขวาของหน้าจอ ซึ่งอาจรบกวนองค์ประกอบการนำทางของแอปในบริเวณดังกล่าว หากต้องการคงฟังก์ชันการทำงานขององค์ประกอบที่ขอบซ้ายและขวาของหน้าจอไว้ ให้เลือกไม่ใช้ท่าทางสัมผัสเพื่อย้อนกลับโดยระบุให้ระบบทราบว่าส่วนใดต้องรับอินพุตการสัมผัส ซึ่งทำได้โดยการส่ง List<Rect> ไปยัง View.setSystemGestureExclusionRects() API ที่เปิดตัวใน Android 10 วิธีนี้ยังพร้อมใช้งานใน ViewCompat อีกด้วย ตั้งแต่วันที่ androidx.core:core:1.1.0-dev01

เช่น

Kotlin

var exclusionRects = listOf(rect1, rect2, rect3)

fun onLayout(
        changedCanvas: Boolean, left: Int, top: Int, right: Int, bottom: Int) {
  // Update rect bounds and the exclusionRects list
  setSystemGestureExclusionRects(exclusionRects)
}

fun onDraw(canvas: Canvas) {
  // Update rect bounds and the exclusionRects list
  setSystemGestureExclusionRects(exclusionRects)
}

Java

List<Rect> exclusionRects;

public void onLayout(
        boolean changedCanvas, int left, int top, int right, int bottom) {
    // Update rect bounds and the exclusionRects list
    setSystemGestureExclusionRects(exclusionRects);
}

public void onDraw(Canvas canvas) {
    // Update rect bounds and the exclusionRects list
    setSystemGestureExclusionRects(exclusionRects);
}

ขัดแย้งกับท่าทางควบคุมสำหรับโฮมหรือสลับอย่างรวดเร็ว

ท่าทางสัมผัสของระบบใหม่สำหรับหน้าแรกและการสลับอย่างรวดเร็วจะเกี่ยวข้องกับการปัดที่ด้านล่างของหน้าจอในพื้นที่ที่เคยมีแถบนําทาง แอปไม่สามารถเลือกไม่ใช้ท่าทางสัมผัสเหล่านี้ได้ เนื่องจากท่าทางสัมผัสดังกล่าวจะเป็นการย้อนกลับ

เพื่อลดปัญหานี้ Android 10 จึงเปิดตัว WindowInsets.getMandatorySystemGestureInsets() API ซึ่งจะแจ้งให้แอปทราบถึงเกณฑ์การจดจำการแตะ

เกมและแอปอื่นๆ ที่ไม่ใช่ View

เกมและแอปอื่นๆ ที่ไม่มีลําดับชั้นของมุมมองมักจะกําหนดให้ผู้ใช้ปัดใกล้กับบริเวณท่าทางสัมผัสของระบบ ในกรณีดังกล่าว เกมสามารถใช้ Window.setSystemGestureExclusionRects() เพื่อยกเว้นพื้นที่ที่ทับซ้อนกับพื้นที่ที่สงวนไว้สำหรับท่าทางสัมผัสของระบบ เกมต้องยกเว้นเฉพาะพื้นที่เหล่านี้เมื่อจำเป็นเท่านั้น เช่น ระหว่างการเล่นเกม

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

อัปเดตแอปให้รองรับท่าทางสัมผัสเพื่อย้อนกลับแบบคาดการณ์

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

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

แหล่งข้อมูลเพิ่มเติม

ดูข้อมูลเพิ่มเติมเกี่ยวกับการไปยังส่วนต่างๆ ด้วยท่าทางสัมผัสได้ที่หัวข้อต่อไปนี้

บล็อกโพสต์

วิดีโอ