自訂控制項

使用自訂控制項時,您可以在導覽檢視畫面上方新增自己的 UI 元素。內建版面配置變更時,Navigation SDK 會自動重新調整自訂控制項的位置。

您可以為每個位置設定一個自訂控制項。自訂控制項可以是一個 UI 元素,或者如果您的設計需要更多,可以將 ViewGroup 與多個 UI 元素搭配使用。

setCustomControl 方法提供 CustomControlPosition 列舉中定義的位置:

  • SECONDARY_HEADER (僅以直向模式顯示)
  • BOTTOM_START_BELOW
  • BOTTOM_END_BELOW

下圖是 UI 控制項中各個位置的範例,用來通知乘客位置。

自訂控制項位置

在主要標頭下方新增自訂控制項

根據預設,版面配置會在主要標頭下方顯示「向箭頭」或「車道指引」。應用程式可將預設版面配置替換成次要標頭位置中設定的自訂控制項。這個控制項會取代導覽檢視畫面頂端的預設內容。如果檢視區塊有背景,該背景會保持原樣。應用程式移除自訂內容後,預設內容就會顯示在原處。

此位置位於主要地圖標頭下方,頂端邊緣與主要標頭的底部邊緣對齊。系統已隱藏預設的次要標頭。目前只有 portrait mode 支援這個位置。landscape mode 無法使用次要標頭,版面配置也不會變更。

  1. 使用自訂 UI 元素或 ViewGroup 建立 Android 檢視畫面
  2. 加載 XML 或將自訂檢視畫面執行個體化,以取得要新增為次要標頭的檢視畫面例項。
  3. NavigationView.setCustomControlNavigationFragment.setCustomControl 與 CustomControlPosition 搭配使用,做為 secondARY_HEADER。

    下例會建立片段,並在次要標頭位置新增自訂控制項。

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

移除次要標頭

如要移除次要標頭並返回預設內容,請使用 setCustomControl 方法。

  • 如要移除檢視畫面,請將檢視畫面設為空值。

    mNavFragment.setCustomControl(null, CustomControlPosition.SECONDARY_HEADER);
    

在導覽檢視畫面上方新增自訂控制項

應用程式可以指定與檢視畫面底部邊緣對齊的自訂控制項。應用程式新增自訂控制項時,重新置中按鈕和 Google 標誌會向上移動,以配合自訂控制項。

  1. 使用要加入的 UI 元素或檢視區塊群組建立 Android 檢視畫面
  2. 建立導覽檢視畫面或片段。
  3. 在導覽檢視畫面或片段上呼叫 setCustomControl 方法,並指定要使用的控制項和位置。

以下範例顯示新增至 NavigationFragment 的自訂 View

  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);