ツールバー

電話アプリは、パッケージ名が com.android.car.ui.toolbar.Toolbar のシャーシ ツールバーを使用します。ツールバーをカスタマイズする最初のステップは、レイアウト ファイルをオーバーレイすることです。レイアウト ファイルは、レガシー ツールバーの場合は car_ui_toolbar.xmlcar_ui_toolbar_two_row.xml、基本レイアウト バージョンの場合は car_ui_base_layout_toolbar.xml です。レイアウトの各バージョンで、次の各ビューに対してそれぞれの ID を指定する必要があります。

id ビューの種類 説明
car_ui_toolbar_background/td>android.view.View 基本レイアウトでは非推奨になっていますが、以前のツールバー スタイルで高さを決定するために使用されます。
car_ui_toolbar_tabs com.android.car.ui.toolbar.TabLayout タブの位置。
car_ui_toolbar_nav_icon android.widget.ImageView 戻る、閉じる、下矢印の各ボタン。
car_ui_toolbar_logo android.widget.ImageView car_ui_toolbar_logo_
fills_nav_icon_space が true の場合のロゴ。
car_ui_toolbar_nav_icon_container android.view.ViewGroup car_ui_toolbar_logocar_ui_toolbar_nav_icon を保持するコンテナ。
car_ui_toolbar_menu_items_container android.view.ViewGroup MenuItem を格納する ViewGroup。
car_ui_toolbar_title android.widget.TextView ツールバーのタイトル。
car_ui_toolbar_title_logo_container android.view.ViewGroup car_ui_toolbar_title_logo のコンテナ。コンテナは、ImageView の代わりに表示され(または非表示にされ)ます。
car_ui_toolbar_title_logo android.widget.ImageView car_ui_toolbar_logo_
fills_nav_icon_space が false の場合のロゴ。
car_ui_toolbar_search_view_container android.widget.FrameLayout 検索ビューがインフレートされる対象コンテナ。これにより、検索バーのない画面でのインフレーション時間が短縮されます。
car_ui_toolbar_progress_bar android.widget.ProgressBar 進行状況バー。

次に、car_ui_toolbar_search_view.xml もカスタマイズする必要があります。これには検索バーが含まれ、次のビューが必要です。

id ビューの種類 説明
car_ui_toolbar_search_bar android.widget.EditText ユーザーが検索するテキストを入力する EditText。
car_ui_toolbar_search_icon android.widget.ImageView 通常、アイコンは検索アイコンを示しますが、アプリケーションで変更できます。
car_ui_toolbar_search_close android.view.View クリックすると検索ボックスを消去するビュー

レイアウトに加えて、次のブール値属性を使用してツールバーをカスタマイズできます。

属性 説明
car_ui_toolbar_tabs_on_second_row タブが表示されるときにタイトルを非表示にするかどうかを決定します。
car_ui_toolbar_nav_icon_reserve_space ナビゲーション アイコンが非表示の場合に、ナビゲーション アイコンのスペースを埋めるためにタイトルを左に移動する必要があるかどうかを決定します。
car_ui_toolbar_logo_fills_nav_icon_space ナビゲーション ボタンがない場合は、ナビゲーション ボタンと同じスペースにロゴを表示します。
car_ui_toolbar_show_logo ツールバーでロゴの表示を完全に無効にするには、これを false に設定します。

これらのビューは、ToolbarControllerImpl メソッドの setState に基づいて表示され、または非表示にされ、あるいは変更されます。表示されるビューと表示のタイミングの詳細については、前述のメソッドをご覧ください。