เมื่อใช้การควบคุมที่กำหนดเอง คุณสามารถเพิ่มองค์ประกอบ UI ของคุณเองที่ด้านบนของมุมมองการนำทาง Navigation SDK จะเปลี่ยนตำแหน่งการควบคุมที่กำหนดเองโดยอัตโนมัติเมื่อเลย์เอาต์ในตัวเปลี่ยนแปลง
คุณกำหนดตัวควบคุมที่กำหนดเองได้ 1 รายการสำหรับแต่ละตำแหน่ง การควบคุมที่กำหนดเองอาจเป็นองค์ประกอบ UI เดียว หรือถ้าการออกแบบของคุณต้องการมากกว่านั้น คุณสามารถใช้ ViewGroup
กับองค์ประกอบ UI หลายรายการได้
เมธอด setCustomControl
ระบุตำแหน่งตามที่ระบุไว้ใน CustomControlPosition
enum ดังนี้
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);