แก้ไข UI การนําทาง

เมื่อใช้ Navigation SDK สําหรับ Android คุณจะปรับเปลี่ยนประสบการณ์ของผู้ใช้กับแผนที่ได้โดยการกําหนดตัวควบคุมและองค์ประกอบ UI ในตัวที่จะปรากฏบนแผนที่ นอกจากนี้ คุณยังปรับลักษณะที่ปรากฏของ UI การนําทางได้ด้วย โปรดดูหลักเกณฑ์เกี่ยวกับการแก้ไข UI การนําทางที่ยอมรับได้ที่หน้านโยบาย

เอกสารนี้อธิบายวิธีแก้ไขอินเทอร์เฟซผู้ใช้ของแผนที่ 2 วิธี ได้แก่

ตัวควบคุม UI ของแผนที่

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

setCustomControl method ระบุตําแหน่งตามที่กําหนดไว้ใน CustomControlPosition enum ดังนี้

  • SECONDARY_HEADER (ปรากฏในโหมดแนวตั้งเท่านั้น)
  • BOTTOM_START_BELOW
  • BOTTOM_END_BELOW
  • FOOTER
ตำแหน่งการควบคุมที่กำหนดเองสำหรับการวางแนวตั้ง
ตำแหน่งการควบคุมที่กำหนดเองสำหรับการวางแนวตั้ง
ตำแหน่งการควบคุมที่กำหนดเองสำหรับการวางแนวนอน
ตำแหน่งการควบคุมที่กำหนดเองสำหรับการวางแนวนอน

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

  1. สร้าง Android View ด้วยองค์ประกอบ UI หรือ ViewGroup ที่กําหนดเอง
  2. ขยาย XML หรือสร้างอินสแตนซ์ของมุมมองที่กําหนดเองเพื่อรับอินสแตนซ์ของมุมมอง
  3. ใช้ NavigationView.setCustomControl หรือ SupportNavigationFragment.setCustomControl กับตำแหน่งการควบคุมที่กำหนดเองที่เลือกจาก CustomControlPosition enum

    ตัวอย่างด้านล่างสร้างข้อมูลโค้ดและเพิ่มการควบคุมที่กําหนดเองในตําแหน่งส่วนหัวรอง

     mNavFragment.setCustomControl(getLayoutInflater().
       inflate(R.layout.your_custom_control, null),
       CustomControlPosition.SECONDARY_HEADER);
     ```
    

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

หากต้องการนําตัวควบคุมที่กําหนดเองออก ให้เรียกใช้เมธอด setCustomControl ด้วยพารามิเตอร์ null view และตําแหน่งตัวควบคุมที่กําหนดเองที่เลือก

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

mNavFragment.setCustomControl(null, CustomControlPosition.SECONDARY_HEADER);

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

ส่วนหัวรอง

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

หากต้องการใช้ตําแหน่งการควบคุมที่กําหนดเองนี้ ให้ส่งตําแหน่ง CustomControlPosition.SECONDARY_HEADER ไปยัง setCustomControl

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

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

เริ่มต้นที่ด้านล่าง

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

หากต้องการใช้ตําแหน่งการควบคุมที่กําหนดเองนี้ ให้ส่งตําแหน่ง CustomControlPosition.BOTTOM_START_BELOW ไปยัง setCustomControl

ตำแหน่งการควบคุมที่กำหนดเองนี้จะอยู่ที่มุมล่างซ้ายของแผนที่ ทั้ง portrait mode และ landscape mode จะอยู่เหนือการ์ดเวลาถึงโดยประมาณและ/หรือส่วนท้ายที่กำหนดเอง (หรือที่ด้านล่างของแผนที่หากไม่มีการ์ดเวลาถึงโดยประมาณและส่วนท้ายที่กำหนดเอง) และองค์ประกอบ Nav SDK รวมถึงปุ่มจัดกึ่งกลางใหม่และโลโก้ Google จะเลื่อนขึ้นเพื่อรองรับความสูงของมุมมองการควบคุมที่กำหนดเอง ตัวควบคุมนี้จะอยู่ในขอบเขตแผนที่ที่มองเห็นได้ ดังนั้นการเพิ่มระยะห่างจากขอบด้านล่างหรือขอบเริ่มต้นของแผนที่ก็จะเปลี่ยนตำแหน่งของตัวควบคุมนี้ด้วย

ปลายด้านล่าง

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

หากต้องการใช้ตําแหน่งการควบคุมที่กําหนดเองนี้ ให้ส่งตําแหน่ง CustomControlPosition.BOTTOM_END_BELOW ไปยัง setCustomControl

ตำแหน่งการควบคุมที่กำหนดเองนี้จะอยู่ที่มุมล่างสุดของแผนที่ ใน portrait mode ข้อความจะแสดงอยู่เหนือการ์ดเวลาถึงโดยประมาณและ/หรือส่วนท้ายที่กำหนดเอง (หรือที่ด้านล่างของแผนที่หากไม่มีการ์ดเวลาถึงโดยประมาณและส่วนท้ายที่กำหนดเอง) แต่ในส่วน landscape mode ข้อความจะจัดแนวกับด้านล่างของแผนที่ องค์ประกอบ Nav SDK ที่มองเห็นได้ทางด้านท้าย (ด้านขวาใน LTR) จะเลื่อนขึ้นเพื่อรองรับความสูงของมุมมองการควบคุมที่กำหนดเอง ตัวควบคุมนี้จะอยู่ในขอบเขตแผนที่ที่มองเห็นได้ ดังนั้นระยะห่างจากขอบที่เพิ่มไว้ที่ด้านล่างหรือขอบท้ายของแผนที่ก็จะเปลี่ยนตำแหน่งของตัวควบคุมนี้ด้วย

ตำแหน่งการควบคุมที่กำหนดเองในส่วนท้ายสำหรับการวางแนวตั้ง
ตำแหน่งตัวควบคุมที่กำหนดเองของส่วนท้ายสำหรับการวางแนวตั้ง
ตำแหน่งตัวควบคุมที่กำหนดเองในส่วนท้ายสำหรับการวางแนวนอน
ตำแหน่งตัวควบคุมที่กำหนดเองของส่วนท้ายสำหรับการวางแนวนอน

หากต้องการใช้ตําแหน่งการควบคุมที่กําหนดเองนี้ ให้ส่งตําแหน่ง CustomControlPosition.FOOTER ไปยัง setCustomControl

ตําแหน่งการควบคุมที่กําหนดเองนี้ออกแบบมาสําหรับมุมมองส่วนท้ายที่กําหนดเอง หากการ์ดเวลาถึงโดยประมาณของ Nav SDK แสดงอยู่ การควบคุมนี้จะอยู่เหนือการ์ด หากไม่ได้เลือก การควบคุมจะสอดคล้องกับด้านล่างของแผนที่ ต่างจากตัวควบคุมที่กำหนดเอง BOTTOM_START_BELOW และ BOTTOM_END_BELOW ตัวควบคุมนี้จะวางไว้นอกขอบเขตแผนที่ที่มองเห็นได้ ซึ่งหมายความว่าการใส่ระยะห่างจากขอบที่เพิ่มลงในแผนที่จะไม่เปลี่ยนตำแหน่งของตัวควบคุมนี้

ใน portrait mode ส่วนท้ายที่กำหนดเองจะมีความกว้างเต็มหน้า การควบคุมที่กำหนดเองทั้งในตำแหน่ง CustomControlPosition.BOTTOM_START_BELOW และ CustomControlPosition.BOTTOM_END_BELOW รวมถึงองค์ประกอบ UI ของ Nav SDK เช่น ปุ่มจัดกึ่งกลางใหม่และโลโก้ Google จะวางอยู่เหนือส่วนท้ายของการควบคุมที่กำหนดเอง ตำแหน่งเริ่มต้นของสัญลักษณ์ลูกศรจะพิจารณาความสูงของส่วนท้ายที่กำหนดเอง

ใน landscape mode ส่วนท้ายที่กำหนดเองจะมีขนาดครึ่งความกว้างและจัดชิดกับด้านเริ่มต้น (ด้านซ้ายใน LTR) เช่นเดียวกับการ์ดเวลาถึงโดยประมาณของ Nav SDK การควบคุมที่กำหนดเองในตำแหน่ง CustomControlPosition.BOTTOM_START_BELOW และองค์ประกอบ UI ของ Nav SDK เช่น ปุ่มจัดกึ่งกลางใหม่และโลโก้ Google จะวางอยู่เหนือส่วนท้ายของการควบคุมที่กำหนดเอง การควบคุมที่กำหนดเองในCustomControlPosition.BOTTOM_END_BELOW ตำแหน่งและองค์ประกอบ UI ของ Nav SDK ตลอดขอบด้านท้าย (ด้านขวาใน LTR) จะยังคงอยู่ตรงกับด้านล่างของแผนที่ ตำแหน่งเริ่มต้นของสัญลักษณ์ลูกศรจะไม่เปลี่ยนแปลงเมื่อมีส่วนท้ายที่กำหนดเอง เนื่องจากส่วนท้ายไม่ขยายไปถึงส่วนท้ายของแผนที่

การควบคุมที่กำหนดเองในตำแหน่ง CustomControlPosition.BOTTOM_START_BELOW และ CustomControlPosition.BOTTOM_END_BELOW รวมถึงองค์ประกอบ UI ของ Nav SDK เช่น ปุ่มจัดกึ่งกลางใหม่และโลโก้ Google จะวางอยู่เหนือส่วนท้ายของการควบคุมที่กำหนดเอง

อุปกรณ์เสริม UI ของแผนที่

Navigation SDK สำหรับ Android มีอุปกรณ์เสริม UI ที่ปรากฏขึ้นระหว่างการนำทาง ซึ่งคล้ายกับอุปกรณ์เสริมที่อยู่ในแอปพลิเคชัน Google Maps สำหรับ Android คุณสามารถปรับระดับการมองเห็นหรือลักษณะที่ปรากฏของตัวควบคุมเหล่านี้ได้ตามที่อธิบายไว้ในส่วนนี้ การเปลี่ยนแปลงที่คุณทำที่นี่จะแสดงในเซสชันการนําทางถัดไป

โปรดดูหลักเกณฑ์เกี่ยวกับการแก้ไข UI การนําทางที่ยอมรับได้ในหน้านโยบาย

ดูรหัส

แก้ไขส่วนหัวการนําทาง

ใช้ SupportNavigationFragment.setStylingOptions() หรือ NavigationView.setStylingOptions() เพื่อเปลี่ยนธีมของส่วนหัวการนำทางและตัวบ่งชี้การเลี้ยวถัดไปที่ปรากฏใต้ส่วนหัว (หากมี)

คุณสามารถตั้งค่าแอตทริบิวต์ต่อไปนี้ได้

ประเภทแอตทริบิวต์Attributes
สีพื้นหลัง
  • โหมดกลางวันหลัก - สีของส่วนหัวการนำทางในเวลากลางวัน
  • โหมดกลางวันรอง - สีของไฟเลี้ยวเลี้ยวถัดไปในเวลากลางวัน
  • โหมดกลางคืนหลัก - สีตอนกลางคืนของส่วนหัวการนำทาง
  • โหมดกลางคืนรอง - สีกลางคืนของไฟเลี้ยวเลี้ยวถัดไป
องค์ประกอบข้อความสำหรับวิธีการ
  • สีข้อความ
  • แบบอักษร
  • ขนาดข้อความของแถวแรก
  • ขนาดข้อความของแถวที่ 2
องค์ประกอบข้อความสำหรับขั้นตอนถัดไป
  • แบบอักษร
  • สีข้อความของค่าระยะทาง
  • ขนาดข้อความของค่าระยะทาง
  • สีข้อความของหน่วยวัดระยะทาง
  • ขนาดข้อความของหน่วยวัดระยะทาง
ไอคอนการขับขี่
  • สีของไอคอนการบังคับเครื่องบินขนาดใหญ่
  • สีของไอคอนการบังคับเลี้ยวขนาดเล็ก
คำแนะนำช่องทาง
  • สีของเลนที่แนะนำ

ตัวอย่างต่อไปนี้แสดงวิธีตั้งค่าตัวเลือกการจัดรูปแบบ

private SupportNavigationFragment mNavFragment;
mNavFragment = (SupportNavigationFragment) getFragmentManager()
  .findFragmentById(R.id.navigation_fragment);

// Set the styling options on the fragment.
mNavFragment.setStylingOptions(new StylingOptions()
  .primaryDayModeThemeColor(0xff1A237E)
  .secondaryDayModeThemeColor(0xff3F51B5)
  .primaryNightModeThemeColor(0xff212121)
  .secondaryNightModeThemeColor(0xff424242)
  .headerLargeManeuverIconColor(0xffffff00)
  .headerSmallManeuverIconColor(0xffffa500)
  .headerNextStepTypefacePath("/system/fonts/NotoSerif-BoldItalic.ttf")
  .headerNextStepTextColor(0xff00ff00)
  .headerNextStepTextSize(20f)
  .headerDistanceTypefacePath("/system/fonts/NotoSerif-Italic.ttf")
  .headerDistanceValueTextColor(0xff00ff00)
  .headerDistanceUnitsTextColor(0xff0000ff)
  .headerDistanceValueTextSize(20f)
  .headerDistanceUnitsTextSize(18f)
  .headerInstructionsTypefacePath("/system/fonts/NotoSerif-BoldItalic.ttf")
  .headerInstructionsTextColor(0xffffff00)
  .headerInstructionsFirstRowTextSize(24f)
  .headerInstructionsSecondRowTextSize(20f)
  .headerGuidanceRecommendedLaneColor(0xffffa500));

ปิดเลเยอร์การจราจร

ใช้ GoogleMap.setTrafficEnabled() เพื่อเปิดหรือปิดเลเยอร์การจราจรบนแผนที่ การตั้งค่านี้ส่งผลต่อบ่งชี้ความหนาแน่นของรถที่แสดงบนแผนที่โดยรวม แต่จะไม่ส่งผลต่อตัวบ่งชี้การจราจรบนเส้นทางที่วางแผนโดยระบบนำทาง

private GoogleMap mMap;
// Get the map, and when the async call returns, setTrafficEnabled
// (callback will be on the UI thread)
mMap = mNavFragment.getMapAsync(navMap -> navMap.setTrafficEnabled(false));

เปิดใช้สัญญาณไฟจราจรและป้ายหยุด

คุณสามารถเปิดใช้การแสดงสัญญาณไฟจราจรและป้ายหยุดบนแผนที่ขณะนำทาง ซึ่งจะให้บริบทเพิ่มเติมสำหรับเส้นทางและการขับขี่

โดยค่าเริ่มต้น สัญญาณไฟจราจรและป้ายหยุดจะปิดอยู่ใน Navigation SDK หากต้องการเปิดใช้ฟีเจอร์นี้ ให้เรียกใช้ DisplayOptions สำหรับแต่ละฟีเจอร์แยกกัน

DisplayOptions displayOptions =
  new DisplayOptions().showTrafficLights(true).showStopSigns(true);

เพิ่มเครื่องหมายที่กำหนดเอง

ตอนนี้ Navigation SDK สำหรับ Android ใช้ Google Maps API สำหรับเครื่องหมาย ดูข้อมูลเพิ่มเติมได้ที่เอกสารประกอบของ Maps API

ข้อความที่ลอยอยู่

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

แสดงขีดจำกัดความเร็ว

คุณแสดงหรือซ่อนไอคอนจำกัดความเร็วแบบเป็นโปรแกรมได้ ใช้ NavigationView.setSpeedLimitIconEnabled() หรือ SupportNavigationFragment.setSpeedLimitIconEnabled() เพื่อแสดงหรือซ่อนไอคอนขีดจำกัดความเร็ว เมื่อเปิดใช้ ไอคอนจำกัดความเร็วจะแสดงที่มุมล่างระหว่างการแนะนำ ไอคอนจะแสดงขีดจำกัดความเร็วของถนนที่ยานพาหนะวิ่งอยู่ ไอคอนจะปรากฏเฉพาะในตำแหน่งที่มีข้อมูลขีดจำกัดความเร็วที่เชื่อถือได้เท่านั้น

 // Display the Speed Limit icon
 mNavFragment.setSpeedLimitIconEnabled(true);

ไอคอนขีดจำกัดความเร็วจะซ่อนชั่วคราวเมื่อปุ่ม "จัดตำแหน่งใหม่" แสดงขึ้น

ตั้งค่าโหมดกลางคืน

คุณควบคุมลักษณะการทำงานของโหมดกลางคืนแบบเป็นโปรแกรมได้ ใช้ NavigationView.setForceNightMode() หรือ SupportNavigationFragment.setForceNightMode() เพื่อเปิดหรือปิดโหมดกลางคืน หรือให้ Navigation SDK สำหรับ Android ควบคุม

  • AUTO อนุญาตให้ Navigation SDK กำหนดโหมดที่เหมาะสมตามตำแหน่งของอุปกรณ์และเวลาท้องถิ่น
  • FORCE_NIGHT เปิดโหมดกลางคืน
  • FORCE_DAY เปิดโหมดกลางวัน

ตัวอย่างต่อไปนี้แสดงการบังคับให้เปิดโหมดกลางคืนภายในส่วนย่อยการนำทาง

// Force night mode on.
mNavFragment.setForceNightMode(FORCE_NIGHT);

แสดงรายการเส้นทาง

ขั้นแรก ให้สร้างมุมมองและเพิ่มลงในลําดับชั้น

void setupDirectionsListView() {
  // Create the view.
  DirectionsListView directionsListView = new DirectionsListView(getApplicationContext());
  // Add the view to your view hierarchy.
  ViewGroup group = findViewById(R.id.directions_view);
  group.addView(directionsListView);

  // Add a button to your layout to close the directions list view.
  ImageButton button = findViewById(R.id.close_directions_button); // this button is part of the container we hide in the next line.
  button.setOnClickListener(
      v -> findViewById(R.id.directions_view_container).setVisibility(View.GONE));
}

อย่าลืมส่งต่อเหตุการณ์ในวงจรชีวิตของ DirectionsListView เช่นเดียวกับที่ส่งต่อให้กับ NavigationView เช่น

protected void onResume() {
  super.onResume();
  directionsListView.onResume();
}

การซ่อนเส้นทางอื่น

เมื่ออินเทอร์เฟซผู้ใช้มีข้อมูลมากเกินไป คุณสามารถลดความกระจัดกระจายได้โดยการแสดงเส้นทางอื่นน้อยกว่าค่าเริ่มต้น (2 เส้นทาง) หรือไม่แสดงเส้นทางอื่นเลย คุณสามารถกําหนดค่าตัวเลือกนี้ก่อนดึงข้อมูลเส้นทางได้โดยเรียกใช้RoutingOptions.alternateRoutesStrategy()วิธีที่มีค่าการแจกแจงค่าใดค่าหนึ่งต่อไปนี้

ค่าการแจงนับคำอธิบาย
AlternateRoutesStrategy.SHOW_ALL ค่าเริ่มต้น แสดงเส้นทางอื่นได้สูงสุด 2 เส้นทาง
AlternateRoutesStrategy.SHOW_ONE แสดงเส้นทางอื่น 1 เส้นทาง (หากมี)
AlternateRoutesStrategy.SHOW_NONE ซ่อนเส้นทางอื่น

ตัวอย่างโค้ดต่อไปนี้แสดงวิธีซ่อนเส้นทางอื่นทั้งหมด

RoutingOptions routingOptions = new RoutingOptions();
routingOptions.alternateRoutesStrategy(AlternateRoutesStrategy.SHOW_NONE);
navigator.setDestinations(destinations, routingOptions, displayOptions);

แถบความคืบหน้าของการเดินทาง

เพิ่มแถบความคืบหน้าของการเดินทางในการนําทาง

แถบความคืบหน้าของการเดินทางคือแถบแนวตั้งที่ปรากฏขึ้นที่ด้านเริ่มต้น/ด้านนำของแผนที่เมื่อการนําทางเริ่มต้น เมื่อเปิดใช้ ฟีเจอร์นี้จะแสดงภาพรวมของการเดินทางทั้งหมด พร้อมกับปลายทางและตำแหน่งปัจจุบันของผู้ใช้

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

แถบความคืบหน้าของการเดินทางจะแสดงตัวบ่งชี้สถานะต่อไปนี้

  • เวลาที่ใช้ไปบนเส้นทาง - ระยะเวลาที่ใช้ไปของการเดินทาง

  • ตำแหน่งปัจจุบัน - ตำแหน่งปัจจุบันของผู้ใช้ในการเดินทาง

  • สถานะการจราจร - สถานะของการจราจรที่กําลังจะเกิดขึ้น

  • จุดหมายสุดท้าย - จุดหมายปลายทางของการเดินทาง

เปิดใช้แถบความคืบหน้าของการเดินทางโดยเรียกใช้เมธอด setTripProgressBarEnabled() ใน NavigationView หรือ SupportNavigationFragment เช่น

// Enable the trip progress bar.
mNavFragment.setTripProgressBarEnabled(true);

ตำแหน่งแถบความคืบหน้าของการเดินทาง

  • ด้านซ้ายของแถบจะสอดคล้องกับด้านซ้ายของเครื่องวัดความเร็ว โลโก้ Google และปุ่ม "จัดกึ่งกลางใหม่" (หากมองเห็น) โดยประมาณ ความกว้างคือ 12 dp
  • แถบความคืบหน้าของการเดินทางจะคงความสูงไว้แบบคงที่ แถบความคืบหน้าของการเดินทางจะปรับระดับการมองเห็นและความสูงตามจุดพักที่กำหนดไว้ตามความสูงของหน้าจอ เพื่อปรับให้เข้ากับข้อจำกัดของพื้นที่แนวตั้งในอุปกรณ์ขนาดเล็ก จุดพักเหล่านี้ไม่เกี่ยวข้องกับการวางแนวของอุปกรณ์และพื้นที่ที่แผนที่ใช้บนหน้าจอจริง
  • ความสูงของหน้าจอ การแสดงแถบความคืบหน้าของการเดินทาง ความสูงของแถบความคืบหน้าของการเดินทาง ตำแหน่งแกน Y ของแถบความคืบหน้าของการเดินทาง
    เล็ก: 0 dp - 551 dp ไม่แสดง ไม่มี ไม่มี
    กลาง: 552 dp - 739 dp แสดง 130 dp เหนือตัวควบคุมด้านข้างของจุดเริ่มต้น (มาตรความเร็ว / โลโก้ Google / ปุ่มจัดศูนย์ใหม่)
    ขนาดใหญ่: 740 dp ขึ้นไป แสดง 290 dp เหนือตัวควบคุมด้านข้างของจุดเริ่มต้น (มาตรความเร็ว / โลโก้ Google / ปุ่มจัดศูนย์ใหม่)
  • หากแถบความคืบหน้าของการเดินทางซ้อนทับกับการ์ดเลี้ยวหรือองค์ประกอบ UI การนำทางอื่นๆ แถบดังกล่าวจะปรากฏใต้องค์ประกอบอื่นๆ เหล่านั้น

Prompt Visibility API (เวอร์ชันทดลอง)

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