ตั้งแต่ 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 จึงเปิดตัว API นี้เพื่อบรรเทาปัญหาดังกล่าว ซึ่งจะแจ้งแอปเกี่ยวกับเกณฑ์การจดจำการสัมผัสWindowInsets.getMandatorySystemGestureInsets()
เกมและแอปอื่นๆ ที่ไม่ใช่ View
เกมและแอปอื่นๆ ที่ไม่มีลําดับชั้นของมุมมองมักจะกําหนดให้ผู้ใช้ต้องปัดใกล้กับพื้นที่ท่าทางสัมผัสของระบบ ในกรณีดังกล่าว เกมสามารถใช้ Window.setSystemGestureExclusionRects()
เพื่อยกเว้นพื้นที่ที่ทับซ้อนกับพื้นที่ที่สงวนไว้สำหรับท่าทางสัมผัสของระบบ เกมต้องยกเว้นเฉพาะพื้นที่เหล่านี้เมื่อจำเป็นเท่านั้น เช่น ระหว่างการเล่นเกม
หากเกมกำหนดให้ผู้ใช้ปัดใกล้กับบริเวณท่าทางสัมผัสของหน้าแรก แอปจะขอวางเลย์เอาต์ในโหมดสมจริงได้ ซึ่งจะปิดใช้ท่าทางสัมผัสของระบบขณะที่ผู้ใช้โต้ตอบกับเกม แต่ให้ผู้ใช้เปิดใช้ท่าทางสัมผัสของระบบอีกครั้งโดยปัดจากด้านล่างของหน้าจอ
อัปเดตแอปให้รองรับท่าทางสัมผัสเพื่อย้อนกลับแบบคาดการณ์
Android 13 (API ระดับ 33) เปิดตัวท่าทางสัมผัสที่คาดคะเนการย้อนกลับสำหรับอุปกรณ์ Android เช่น โทรศัพท์ หน้าจอขนาดใหญ่ และอุปกรณ์แบบพับได้ ท่าทางสัมผัสเพื่อย้อนกลับแบบคาดการณ์เป็นส่วนหนึ่งของรุ่นที่เผยแพร่หลายปี เมื่อใช้งานอย่างเต็มรูปแบบแล้ว ฟีเจอร์นี้จะช่วยให้ผู้ใช้ดูตัวอย่างปลายทางหรือผลลัพธ์อื่นๆ ของท่าทางสัมผัสเพื่อย้อนกลับก่อนที่จะดำเนินการให้เสร็จสมบูรณ์ได้ ซึ่งจะช่วยให้ผู้ใช้ตัดสินใจได้ว่าต้องการดำเนินการต่อหรือจะอยู่ในมุมมองปัจจุบัน
ดูรายละเอียดได้ที่หัวข้อเพิ่มการรองรับท่าทางสัมผัสเพื่อย้อนกลับแบบคาดการณ์
แหล่งข้อมูลเพิ่มเติม
ดูข้อมูลเพิ่มเติมเกี่ยวกับการไปยังส่วนต่างๆ ด้วยท่าทางสัมผัสได้ที่หัวข้อต่อไปนี้