หลังจากออกแบบหน้าจอแต่ละหน้าจอสำหรับเส้นทางของผู้ใช้แต่ละเส้นทางแล้ว คุณอาจมีหน้าจอแนวตั้งหรือหน้าจอเดียว 2-3 หน้าจอ จากนั้นคุณต้องตัดสินใจว่าจะออกแบบหน้าจอเหล่านี้ให้ทำงานร่วมกันอย่างไรและจะใช้การไปยังส่วนต่างๆ อย่างไร
การออกแบบ
รักษาระดับชั้นของแอปให้ตื้นและเป็นเส้นตรงตามที่ระบุไว้ในหลักเกณฑ์การออกแบบแอป
เริ่มต้นด้วยตัวเรียกใช้แอปควรเปิดเส้นทางของผู้ใช้ที่พบบ่อยที่สุด ออกแบบเส้นทางของผู้ใช้แต่ละเส้นทาง โดยให้เนื้อหาที่สำคัญที่สุดอยู่ด้านบน สำหรับคอนเทนเนอร์แนวตั้ง ให้ใช้ด้านล่างเพื่อลิงก์ไปยัง เส้นทางของผู้ใช้และส่วนอื่นๆ ที่ไม่ค่อยพบบ่อย
เมื่อผู้ใช้เข้าสู่หน้าจอใดหน้าจอหนึ่ง ให้ตรวจสอบว่าผู้ใช้สามารถใช้ท่าทางสัมผัสปัดเพื่อปิด เพื่อไปยังส่วนต่างๆ ใน 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 ซ้อนกัน