ตั้งแต่ Android 10 (API ระดับ 29) เป็นต้นไป ระบบ Android จะรองรับการไปยังส่วนต่างๆ โดยใช้ท่าทางสัมผัสอย่างเต็มรูปแบบ นักพัฒนาแอปต้องทำ 2 สิ่งต่อไปนี้เพื่อให้แอปเข้ากันได้กับฟีเจอร์นี้
- ขยายเนื้อหาแอปจากขอบหนึ่งไปยังอีกขอบหนึ่ง
- จัดการท่าทางสัมผัสของแอปที่ขัดแย้งกัน
นอกจากนี้ Android 13 (ระดับ API 33) ยังเปิดตัวท่าทางสัมผัสการย้อนกลับที่คาดการณ์ได้สำหรับอุปกรณ์ Android เช่น โทรศัพท์ หน้าจอขนาดใหญ่ และอุปกรณ์แบบพับได้ ซึ่งเป็นส่วนหนึ่งของการเปิดตัวแบบหลายปี นักพัฒนาแอปสามารถทำตามขั้นตอนต่างๆ เพื่อให้แอปของตนรองรับท่าทางสัมผัสการย้อนกลับที่คาดการณ์ได้
แสดงเนื้อหาแอปแบบไร้ขอบ
หากต้องการใช้ประโยชน์จากพื้นที่หน้าจอเพิ่มเติมที่แถบนำทางแบบลอยมีให้ คุณต้องกำหนดค่าการเปลี่ยนแปลงบางอย่างในแอป
ดูรายละเอียดได้ที่แสดงเนื้อหาแบบไร้ขอบในแอป
จัดการท่าทางสัมผัสของแอปที่ขัดแย้งกัน
รูปแบบการไปยังส่วนต่างๆ ด้วยท่าทางสัมผัสอาจขัดแย้งกับท่าทางสัมผัสที่นักพัฒนาแอปเคยใช้ก่อนหน้านี้ คุณอาจต้องปรับอินเทอร์เฟซผู้ใช้ของแอปด้วยเหตุนี้
ขัดแย้งกับท่าทางสัมผัสเพื่อย้อนกลับ
ท่าทางสัมผัสของระบบใหม่สำหรับการย้อนกลับคือการปัดเข้าด้านในจากขอบด้านซ้ายหรือขวาของหน้าจอ ซึ่งอาจรบกวนองค์ประกอบการนำทางของแอปในพื้นที่เหล่านั้น หากต้องการรักษาฟังก์ชันการทำงานขององค์ประกอบที่ขอบด้านซ้ายและขวาของหน้าจอ ให้เลือกไม่ใช้ท่าทางสัมผัสเพื่อย้อนกลับโดยระบุให้ระบบทราบว่าบริเวณใดที่ต้องรับการป้อนข้อมูลด้วยการสัมผัส ซึ่งทำได้โดยการส่ง List<Rect> ไปยัง API View.setSystemGestureExclusionRects() ที่เปิดตัวใน 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 เช่น โทรศัพท์ หน้าจอขนาดใหญ่ และอุปกรณ์แบบพับได้ ท่าทางสัมผัสการย้อนกลับที่คาดการณ์ได้เป็นส่วนหนึ่งของการเปิดตัวที่ใช้เวลาหลายปี เมื่อใช้งานอย่างเต็มรูปแบบ ฟีเจอร์นี้จะช่วยให้ผู้ใช้ดูตัวอย่างปลายทางหรือผลลัพธ์อื่นๆ ของท่าทางสัมผัสสำหรับการย้อนกลับก่อนที่จะดำเนินการจนเสร็จสมบูรณ์ ซึ่งช่วยให้ผู้ใช้ตัดสินใจได้ว่าจะดำเนินการต่อหรือคงมุมมองปัจจุบันไว้
ดูรายละเอียดได้ที่เพิ่มการรองรับท่าทางสัมผัสการย้อนกลับที่คาดการณ์ได้
แหล่งข้อมูลเพิ่มเติม
ดูข้อมูลเพิ่มเติมเกี่ยวกับการไปยังส่วนต่างๆ ด้วยท่าทางสัมผัสได้ที่หัวข้อต่อไปนี้
บล็อกโพสต์
วิดีโอ
- Android 10: การไปยังส่วนต่างๆ ด้วยท่าทางสัมผัส
- ธีมมืดและการไปยังส่วนต่างๆ ด้วยท่าทางสัมผัส (Google I/O ’19)