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

ตั้งแต่ 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 เช่น โทรศัพท์ หน้าจอขนาดใหญ่ และอุปกรณ์แบบพับได้ ท่าทางสัมผัสการย้อนกลับที่คาดการณ์ได้เป็นส่วนหนึ่งของการเปิดตัวหลายปี เมื่อใช้งานอย่างเต็มรูปแบบ ฟีเจอร์นี้จะช่วยให้ผู้ใช้ดูตัวอย่างปลายทางหรือผลลัพธ์อื่นๆ ของท่าทางสัมผัสการย้อนกลับก่อนที่จะทำท่าทางสัมผัสให้เสร็จสมบูรณ์ ทำให้ผู้ใช้ตัดสินใจได้ว่าจะดำเนินการต่อหรืออยู่ในมุมมองปัจจุบัน

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

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

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

บล็อกโพสต์

วิดีโอ