หลังจากออกแบบหน้าจอแต่ละหน้าจอสำหรับเส้นทางของผู้ใช้แต่ละเส้นทางแล้ว คุณอาจมีหน้าจอแนวตั้งหรือหน้าจอเดียว 2-3 หน้าจอ จากนั้นคุณต้องตัดสินใจว่าจะออกแบบหน้าจอเหล่านี้ให้ทำงานร่วมกันอย่างไรและจะใช้การไปยังส่วนต่างๆ อย่างไร
การออกแบบ
รักษาระดับชั้นของแอปให้ตื้นและเป็นเส้นตรงตามที่ระบุไว้ในหลักเกณฑ์การออกแบบแอป
เริ่มต้นด้วยตัวเรียกใช้แอปควรเปิดเส้นทางของผู้ใช้ที่พบบ่อยที่สุด ออกแบบเส้นทางของผู้ใช้แต่ละเส้นทาง โดยวางเนื้อหาที่สำคัญที่สุดไว้ด้านบน สำหรับคอนเทนเนอร์แนวตั้ง ให้ใช้ด้านล่างเพื่อลิงก์ไปยัง เส้นทางของผู้ใช้และส่วนการตั้งค่าอื่นๆ ที่ไม่พบบ่อย
รูปที่ 1 วางเนื้อหาที่สำคัญที่สุดไว้ด้านบนของคอนเทนเนอร์แนวตั้ง
เมื่อผู้ใช้เข้าสู่หน้าจอใดหน้าจอหนึ่ง ให้ตรวจสอบว่าผู้ใช้สามารถใช้ท่าทางสัมผัสปัดเพื่อปิด เพื่อไปยังส่วนต่างๆ ในสแต็กย้อนกลับได้
ใช้การไปยังส่วนต่างๆ
เมื่อใช้การไปยังส่วนต่างๆ คุณจะมี 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 คุณต้องใส่มุมมองที่มี Fragment ไว้ในคลาส SwipeDismissFrameLayout ดูข้อมูลเพิ่มเติมได้ที่
ท่าทางสัมผัสปัดเพื่อปิด
การทำเช่นนี้จะช่วยให้ผู้ใช้ได้รับประสบการณ์การใช้งานที่สอดคล้องกันในแอปของคุณ
หมายเหตุ: เมื่อใช้ Fragment ให้ใช้
FragmentManager.add
แทน
FragmentManager.replace
เพื่อรองรับท่าทางสัมผัสปัดเพื่อปิด
วิธีนี้ช่วยให้ Fragment ก่อนหน้าแสดงผลใต้ Fragment ด้านบนขณะที่กำลัง
ปัดออก
Jetpack Navigation
Jetpack Navigation สามารถทำงานบน Wear OS ได้ แต่มีข้อเสียเหมือนกับ Fragment ซึ่งจะเพิ่มงานในการพัฒนา และเนื่องจากระดับชั้นของแอป Wear OS โดยทั่วไปจะตื้นและเป็นเส้นตรง จึงไม่มีข้อได้เปรียบมากนัก แนวทางที่ใช้กิจกรรมเท่านั้นจึงดีที่สุด
หากต้องการใช้ประโยชน์จาก Jetpack Navigation อย่างเต็มที่ ให้ทำดังนี้
-
ตรวจสอบว่าทุก Fragment ใช้
SwipeDismissFrameLayoutเป็นราก และใช้การดำเนินการปิดด้วยตนเองเพื่อกลับไปที่กราฟการไปยังส่วนต่างๆ -
ใช้
FragmentNavigatorที่กำหนดเองซึ่งแสดง Fragment ซ้อนกัน