การนำทาง

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

การออกแบบ

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

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

รูปที่ 1 วางเนื้อหาที่สําคัญที่สุดไว้ที่ด้านบนของคอนเทนเนอร์แนวตั้ง

เมื่อผู้ใช้เข้าสู่หน้าจอใดหน้าจอหนึ่ง โปรดตรวจสอบว่าผู้ใช้สามารถใช้ท่าทางสัมผัสเพื่อปัดออกเพื่อไปยังกองซ้อนของหน้าย้อนกลับได้

ใช้การนำทาง

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

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

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

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

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

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

กิจกรรมและ Fraktment

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

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

ปัญหาบางประการในการใช้ Fragment ในแอป Wear OS มีดังนี้

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

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

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

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

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

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

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