การควบคุมที่กําหนดเอง

เมื่อใช้การควบคุมที่กำหนดเอง คุณสามารถเพิ่มองค์ประกอบ UI ของคุณเองที่ด้านบนของมุมมองการนำทาง Navigation SDK จะย้ายตำแหน่งการควบคุมที่กำหนดเองโดยอัตโนมัติเมื่อมีการเปลี่ยนแปลงเลย์เอาต์ในตัว

คุณตั้งค่าการควบคุมที่กำหนดเองได้ 1 รายการสำหรับแต่ละตำแหน่ง โดยการควบคุมที่กำหนดเองจะเป็นองค์ประกอบ UI เดียวก็ได้ หรือหากการออกแบบที่ต้องการมากกว่านั้น ก็ใช้ ViewGroup ร่วมกับองค์ประกอบ UI หลายรายการได้

เมธอด setCustomControl จะระบุตำแหน่งตามที่ระบุไว้ใน enum ของ CustomControlPosition

  • SECONDARY_HEADER (ปรากฏในโหมดแนวตั้งเท่านั้น)
  • BOTTOM_START_BELOW
  • BOTTOM_END_BELOW

ในภาพด้านล่าง คุณสามารถดูตัวอย่างของแต่ละตำแหน่งในตำแหน่งของตัวควบคุม UI ที่แจ้งให้คนขับทราบตำแหน่งของคนขับ

ตำแหน่งการควบคุมที่กำหนดเอง

เพิ่มการควบคุมที่กำหนดเองใต้ส่วนหัวหลัก

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

ตำแหน่งนี้อยู่ใต้ส่วนหัวของแผนที่หลัก โดยขอบด้านบนตรงกับขอบด้านล่างของส่วนหัวหลัก ส่วนหัวรองเริ่มต้นซ่อนอยู่ ตำแหน่งนี้ใช้ได้เฉพาะใน portrait mode ใน landscape mode ส่วนหัวรองจะใช้งานไม่ได้และเลย์เอาต์จะไม่เปลี่ยนแปลง

  1. สร้าง Android View ด้วยองค์ประกอบ UI ที่กำหนดเองหรือ ViewGroup
  2. ขยาย XML ให้ใหญ่ขึ้นหรือสร้างอินสแตนซ์ที่กำหนดเองเพื่อรับอินสแตนซ์ของมุมมองที่จะเพิ่มเป็นส่วนหัวรอง
  3. ใช้ 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 จะเลื่อนขึ้นเพื่อรองรับการควบคุมที่กำหนดเอง

  1. สร้างมุมมอง Android ที่มีองค์ประกอบ UI หรือกลุ่มมุมมองที่ต้องการเพิ่ม
  2. สร้างมุมมองหรือส่วนย่อยสำหรับการนำทาง
  3. เรียกใช้เมธอด 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);