自訂控制項

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

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

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

  • SECONDARY_HEADER (只會在直向模式下顯示)
  • BOTTOM_START_BELOW
  • BOTTOM_END_BELOW

下圖顯示 UI 控制項位置中,向駕駛人通知乘客位置的範例。

自訂控制項位置

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

根據預設,版面配置會在主要標頭下方顯示「然後箭頭」或「車道指引」。您的應用程式可將預設版面配置替換成次要標頭位置中的自訂控制項。這個控制項會取代導覽檢視畫面上方的預設內容。如果您的檢視畫面有背景,背景會維持不變。應用程式移除自訂內容時,預設內容會顯示在原本的位置。

這個位置位於主要地圖標頭下方,上方邊緣與主要標頭的底部邊緣對齊。預設的次要標頭是隱藏的。只有 portrait mode 支援這個位置。在 landscape mode 中,無法使用次要標頭,版面配置也不會變更。

  1. 使用自訂 UI 元素或 ViewGroup 建立 Android View
  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 View
  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);