電話アプリは、パッケージ名が com.android.car.ui.toolbar.Toolbar
のシャーシ ツールバーを使用します。ツールバーをカスタマイズする最初のステップは、レイアウト ファイルをオーバーレイすることです。レイアウト ファイルは、レガシー ツールバーの場合は car_ui_toolbar.xml
と car_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_logo と car_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
に基づいて表示され、または非表示にされ、あるいは変更されます。表示されるビューと表示のタイミングの詳細については、前述のメソッドをご覧ください。