อุปกรณ์ XR ที่รองรับ
คำแนะนำนี้จะช่วยคุณสร้างประสบการณ์การใช้งานสำหรับอุปกรณ์ XR ประเภทนี้
ตัวปรับแต่ง onIndirectPointerGesture ช่วยให้คอมโพเนนต์รับและตอบสนองต่อเหตุการณ์พอยน์เตอร์ทางอ้อมระดับสูง เช่น เหตุการณ์ที่มาจากทัชแพดของอุปกรณ์ ใช้ตัวแก้ไขนี้เพื่อบันทึกและประมวลผลท่าทางสัมผัสที่มาจากทัชแพดหรือแหล่งที่มาที่คล้ายกัน
แพลตฟอร์ม API
แอปของคุณใช้การเรียกกลับ 4 รายการต่อไปนี้เพื่อควบคุมการจัดการได้
onClick: ทริกเกอร์เมื่อแตะหรือคลิกสำเร็จโดยไม่มีการเคลื่อนไหวในแนวนอนที่สำคัญonSwipeForward: ทริกเกอร์เมื่อการปัดในแนวนอนเกินเกณฑ์ระยะทางและความเร็วในทิศทางไปข้างหน้าonSwipeBackward: ทริกเกอร์จะทำงานเมื่อการปัดในแนวนอนเกินเกณฑ์ระยะทาง และความเร็วในทิศทางย้อนกลับEnabled: เมื่อตั้งค่าเป็นfalseระบบจะไม่สนใจตัวแก้ไขและจะไม่เรียกใช้ การเรียกกลับ
ลักษณะการทำงานของระบบสำหรับการปัดและการเลื่อน
ระบบใช้เกณฑ์ความคลาดเคลื่อนจากการสัมผัสเพื่อแยกความแตกต่างระหว่างการคลิกกับการปัด
- หากเคอร์เซอร์เคลื่อนที่อย่างมากในระหว่างสถานะลง ระบบจะ
onClickยกเลิก - หากเคอร์เซอร์ย้อนกลับอย่างมากในระหว่างการเคลื่อนไหว ระบบจะถือว่าท่าทางสัมผัสการปัด ไม่ถูกต้อง
ตัวอย่าง: ตั้งค่าการจัดการสำหรับการปัดและการคลิกในคอมโพเนนต์
โค้ดต่อไปนี้จะตั้งค่าการจัดการสำหรับการปัดและการคลิกใน Box ที่โฟกัสได้
@Composable @Sampled fun OnIndirectPointerGestureSample() { Box( modifier = Modifier.fillMaxSize() .onIndirectPointerGesture( enabled = true, onSwipeForward = { /* onSwipeForward */ }, onSwipeBackward = { /* onSwipeBackward */ }, onClick = { /* onClick */ }, ) .focusTarget() ) { // App() } }
ประเด็นสำคัญเกี่ยวกับโค้ด
onIndirectPointerGestureต้องมีการโฟกัส ดังนั้นจึงมีการใช้focusTargetเพื่อให้Boxโฟกัสได้ด้วย คุณใช้focusTargetหรือตัวแก้ไขอื่นๆ ที่เปิดใช้โฟกัส เช่นsurfaceได้ หากไม่มีโฟกัส ตัวปรับแต่ง จะดำเนินการกับเหตุการณ์ของเคอร์เซอร์ทางอ้อมไม่ได้- ตัวอย่างนี้ใช้ทั้งแฮนเดิล
onSwipeForwardและonClickดังนั้นระบบจะสกัดกั้นและใช้ท่าทางการปัดและคลิกที่ตรวจพบ และจะไม่ส่งต่อไปยังคอนเทนเนอร์ระดับบน อย่างไรก็ตาม คุณยังปล่อยให้ การเรียกกลับที่เฉพาะเจาะจงเป็น Null เพื่อส่งต่อท่าทางสัมผัสไปยังตัวแก้ไขonIndirectPointerGestureในคอนเทนเนอร์หลักได้ด้วย -