เมื่อใช้การควบคุมที่กำหนดเอง คุณสามารถเพิ่มองค์ประกอบ UI ของคุณเองที่ด้านบนของมุมมองการนำทาง Navigation SDK จะย้ายตำแหน่งการควบคุมที่กำหนดเองโดยอัตโนมัติเมื่อมีการเปลี่ยนแปลงเลย์เอาต์ในตัว
คุณตั้งค่าการควบคุมที่กำหนดเองได้ 1 รายการสำหรับแต่ละตำแหน่ง โดยการควบคุมที่กำหนดเองจะเป็นองค์ประกอบ UI เดียวก็ได้ หรือหากการออกแบบที่ต้องการมากกว่านั้น ก็ใช้ ViewGroup
ร่วมกับองค์ประกอบ UI หลายรายการได้
เมธอด setCustomControl
จะระบุตำแหน่งตามที่ระบุไว้ใน enum ของ CustomControlPosition
SECONDARY_HEADER
(ปรากฏในโหมดแนวตั้งเท่านั้น)BOTTOM_START_BELOW
BOTTOM_END_BELOW
ในภาพด้านล่าง คุณสามารถดูตัวอย่างของแต่ละตำแหน่งในตำแหน่งของตัวควบคุม UI ที่แจ้งให้คนขับทราบตำแหน่งของคนขับ
เพิ่มการควบคุมที่กำหนดเองใต้ส่วนหัวหลัก
โดยค่าเริ่มต้น เลย์เอาต์จะแสดงลูกศรแล้วหรือคำแนะนำช่องทางใต้ส่วนหัวหลัก แอปของคุณสามารถแทนที่เลย์เอาต์เริ่มต้นด้วยการตั้งค่าตัวควบคุมที่กำหนดเองไว้ในตำแหน่งส่วนหัวรอง ตัวควบคุมนี้จะแทนที่เนื้อหาเริ่มต้นที่ด้านบนของมุมมองการนำทาง หากมุมมองของคุณมีพื้นหลัง พื้นหลังนั้นจะยังคงอยู่ เมื่อแอปนำเนื้อหาที่กำหนดเองออก เนื้อหาเริ่มต้นจะปรากฏในตำแหน่งดังกล่าว
ตำแหน่งนี้อยู่ใต้ส่วนหัวของแผนที่หลัก โดยขอบด้านบนตรงกับขอบด้านล่างของส่วนหัวหลัก ส่วนหัวรองเริ่มต้นซ่อนอยู่ ตำแหน่งนี้ใช้ได้เฉพาะใน portrait mode
ใน landscape mode
ส่วนหัวรองจะใช้งานไม่ได้และเลย์เอาต์จะไม่เปลี่ยนแปลง
- สร้าง Android View ด้วยองค์ประกอบ UI ที่กำหนดเองหรือ ViewGroup
- ขยาย XML ให้ใหญ่ขึ้นหรือสร้างอินสแตนซ์ที่กำหนดเองเพื่อรับอินสแตนซ์ของมุมมองที่จะเพิ่มเป็นส่วนหัวรอง
ใช้
NavigationView.setCustomControl
หรือNavigationFragment.setCustomControl
กับ CustomControlPosition เป็น SECONDARY_HEADERตัวอย่างด้านล่างจะสร้างส่วนย่อยและเพิ่มการควบคุมที่กำหนดเองในตำแหน่งส่วนหัวรอง
mNavFragment.setCustomControl(getLayoutInflater(). inflate(R.layout.your_custom_control, null), CustomControlPosition.SECONDARY_HEADER);
นำส่วนหัวรองออก
เมื่อคุณต้องการนำส่วนหัวรองออกและกลับไปที่เนื้อหาเริ่มต้น ให้ใช้เมธอด setCustomControl
ตั้งค่ามุมมองเป็น Null เพื่อนำข้อมูลพร็อพเพอร์ตี้ออก
mNavFragment.setCustomControl(null, CustomControlPosition.SECONDARY_HEADER);
เพิ่มตัวควบคุมที่กำหนดเองลงในมุมมองการนำทาง
แอปของคุณสามารถระบุตัวควบคุมที่กำหนดเองตามขอบด้านล่างของมุมมอง เมื่อแอปเพิ่มตัวควบคุมที่กำหนดเอง ปุ่มจัดกึ่งกลางใหม่และโลโก้ Google จะเลื่อนขึ้นเพื่อรองรับการควบคุมที่กำหนดเอง
- สร้างมุมมอง Android ที่มีองค์ประกอบ UI หรือกลุ่มมุมมองที่ต้องการเพิ่ม
- สร้างมุมมองหรือส่วนย่อยสำหรับการนำทาง
- เรียกใช้เมธอด
setCustomControl
ในมุมมองหรือส่วนย่อยการนำทาง และระบุการควบคุมและตำแหน่งที่จะใช้
ตัวอย่างต่อไปนี้แสดง View
ที่กำหนดเองซึ่งเพิ่มใน NavigationFragment
private NavigationFragment mNavFragment;
mNavFragment = (NavigationFragment)
getFragmentManager().findFragmentById(R.id.navigation_fragment);
// Create the custom control view.
MyCustomView myCustomView = new MyCustomView();
// Add the custom control to the bottom end corner of the layout.
mNavFragment.setCustomControl(myCustomView, CustomControlPosition.
BOTTOM_END_BELOW);
นำการควบคุมที่กำหนดเองออก
เมื่อต้องการนำการควบคุมที่กำหนดเองออก ให้ใช้เมธอด setCustomControl
และระบุตำแหน่งของการควบคุมที่ต้องการนำออก
ตั้งค่ามุมมองเป็น
null
สำหรับตำแหน่งนั้นmNavFragment.setCustomControl(null, CustomControlPosition.BOTTOM_END_BELOW);