การนำทาง

ลองใช้วิธีแบบ Compose
Jetpack Compose ใน Wear OS เป็นชุดเครื่องมือ UI ที่แนะนำสำหรับ Wear OS

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

การออกแบบ

รักษาระดับชั้นของแอปให้ตื้นและเป็นเส้นตรงตามที่ระบุไว้ในหลักเกณฑ์การออกแบบแอป

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

เนื้อหายอดนิยมคือกิจกรรมปัจจุบันหรือสถิติสรุปที่สำคัญที่สุด
รูปที่ 1 เก็บเนื้อหาที่สำคัญที่สุดไว้ที่ด้านบนของคอนเทนเนอร์แนวตั้ง

เมื่อผู้ใช้เข้าสู่หน้าจอใดหน้าจอหนึ่ง ให้ตรวจสอบว่าผู้ใช้สามารถใช้ท่าทางสัมผัสปัดเพื่อปิด เพื่อไปยังส่วนต่างๆ ใน Back Stack ได้

ใช้การไปยังส่วนต่างๆ

เมื่อใช้การไปยังส่วนต่างๆ คุณจะมี 3 ตัวเลือกตามที่อธิบายไว้ในส่วนต่อไปนี้

  • กิจกรรมเท่านั้น ซึ่งเป็นแนวทางที่แนะนำ
  • กิจกรรมและ Fragment
  • Jetpack Navigation

กิจกรรมเท่านั้น

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

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

หมายเหตุ: ทำให้กิจกรรมสืบทอดมาจาก ComponentActivity หาก คุณไม่ได้ใช้ Fragment กิจกรรมประเภทอื่นๆ จะใช้องค์ประกอบ UI เฉพาะสำหรับอุปกรณ์เคลื่อนที่ซึ่งคุณไม่จำเป็นต้องใช้สำหรับ Wear OS

กิจกรรมและ Fragment

คุณสามารถใช้ Fragment กับกิจกรรมในแอป Wear OS ได้ อย่างไรก็ตาม เราไม่แนะนำให้ทำเช่นนี้ เนื่องจากไม่มีข้อได้เปรียบที่ชัดเจนในการใช้ Fragment เพื่อสร้างสถาปัตยกรรมที่ตื้นและแบน

หมายเหตุ: หากคุณใช้ Fragment ให้ทำให้ Fragment สืบทอดมาจาก FragmentActivity กิจกรรมประเภทอื่นๆ จะใช้องค์ประกอบ UI เฉพาะสำหรับอุปกรณ์เคลื่อนที่ซึ่งคุณไม่จำเป็นต้องใช้สำหรับ Wear OS

ความยากบางประการในการใช้ Fragment ในแอป Wear OS ได้แก่

  • คุณต้องใช้การปัดเพื่อปิดด้วยตนเอง มิฉะนั้น เมื่อผู้ใช้ปัด ผู้ใช้จะออกจากแอปทั้งหมด
  • หากคุณใช้ AmbientMode คุณต้อง ปรับแต่งให้ทำงานได้อย่างถูกต้อง AmbientMode ตั้งค่าไว้ในกิจกรรม ดังนั้นคุณต้อง คำนึงถึงเรื่องนี้เมื่อใช้ Fragment

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

หมายเหตุ: เมื่อใช้ Fragment ให้ใช้ FragmentManager.add แทน FragmentManager.replace เพื่อรองรับท่าทางสัมผัสปัดเพื่อปิด ซึ่งจะช่วยให้ Fragment ก่อนหน้าแสดงผลใต้ Fragment ด้านบนขณะที่กำลัง ปัดออก

Jetpack Navigation

Jetpack Navigation สามารถทำงานบน Wear OS ได้ แต่มีข้อเสียเหมือนกับ Fragment ซึ่งจะเพิ่มงานในการพัฒนา และเนื่องจากระดับชั้นของแอป Wear OS โดยทั่วไปจะตื้นและเป็นเส้นตรง จึงไม่มีข้อได้เปรียบมากนัก แนวทางที่ใช้กิจกรรมเท่านั้นจึงดีที่สุด

หากต้องการใช้ประโยชน์จาก Jetpack Navigation อย่างเต็มที่ ให้ทำดังนี้

  • ตรวจสอบว่าทุก Fragment ใช้ SwipeDismissFrameLayout เป็นราก และใช้การดำเนินการปิดด้วยตนเองเพื่อกลับไปในกราฟการไปยังส่วนต่างๆ
  • ใช้ FragmentNavigator ที่กำหนดเองซึ่งแสดงผล Fragment ซ้อนกัน