| <?xml version="1.0" encoding="utf-8"?> |
| <!-- |
| Copyright 2019, The Android Open Source Project |
| |
| Licensed under the Apache License, Version 2.0 (the "License"); |
| you may not use this file except in compliance with the License. |
| You may obtain a copy of the License at |
| |
| http://www.apache.org/licenses/LICENSE-2.0 |
| |
| Unless required by applicable law or agreed to in writing, software |
| distributed under the License is distributed on an "AS IS" BASIS, |
| WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| See the License for the specific language governing permissions and |
| limitations under the License. |
| --> |
| <androidx.constraintlayout.widget.ConstraintLayout |
| xmlns:android="http://schemas.android.com/apk/res/android" |
| xmlns:app="http://schemas.android.com/apk/res-auto" |
| android:layout_width="match_parent" |
| android:layout_height="@dimen/car_ui_toolbar_first_row_height"> |
| |
| <!-- When the user finishes searching, we call clearFocus() on the editText in the search bar. |
| clearFocus() will actually send the focus to the first focusable thing in the layout. |
| If that focusable thing is still the search bar it will just reselect it, and the user won't |
| be able to deselect. So make a focusable view here to guarantee that we can clear the focus --> |
| <View |
| android:layout_width="1dp" |
| android:layout_height="1dp" |
| android:focusable="true" |
| android:focusableInTouchMode="true"/> |
| |
| <androidx.constraintlayout.widget.Guideline |
| android:layout_width="wrap_content" |
| android:layout_height="wrap_content" |
| android:id="@+id/toolbar_start_guideline" |
| app:layout_constraintGuide_begin="@dimen/car_ui_toolbar_start_inset" |
| android:orientation="vertical"/> |
| |
| <androidx.constraintlayout.widget.Guideline |
| android:layout_width="wrap_content" |
| android:layout_height="wrap_content" |
| android:id="@+id/toolbar_top_guideline" |
| app:layout_constraintGuide_begin="@dimen/car_ui_toolbar_top_inset" |
| android:orientation="horizontal"/> |
| |
| <androidx.constraintlayout.widget.Guideline |
| android:layout_width="wrap_content" |
| android:layout_height="wrap_content" |
| android:id="@+id/toolbar_end_guideline" |
| app:layout_constraintGuide_end="@dimen/car_ui_toolbar_end_inset" |
| android:orientation="vertical"/> |
| |
| <androidx.constraintlayout.widget.Guideline |
| android:layout_width="wrap_content" |
| android:layout_height="wrap_content" |
| android:id="@+id/toolbar_bottom_guideline" |
| app:layout_constraintGuide_end="@dimen/car_ui_toolbar_bottom_inset" |
| android:orientation="horizontal"/> |
| |
| <androidx.constraintlayout.widget.Guideline |
| android:layout_width="wrap_content" |
| android:layout_height="wrap_content" |
| android:id="@+id/toolbar_start_margin_guideline" |
| app:layout_constraintGuide_begin="@dimen/car_ui_toolbar_margin" |
| android:orientation="vertical"/> |
| |
| <!-- The horizontal bias here is so that when you set this view as GONE, it will be |
| treated as if it's all the way to the left instead of centered in the margin --> |
| <FrameLayout |
| android:id="@+id/nav_icon_container" |
| android:layout_width="0dp" |
| android:layout_height="0dp" |
| android:background="?android:attr/selectableItemBackground" |
| app:layout_constraintTop_toTopOf="@id/toolbar_top_guideline" |
| app:layout_constraintBottom_toTopOf="@id/toolbar_bottom_guideline" |
| app:layout_constraintStart_toEndOf="@id/toolbar_start_guideline" |
| app:layout_constraintEnd_toStartOf="@id/toolbar_start_margin_guideline" |
| app:layout_constraintHorizontal_bias="0.0"> |
| <ImageView |
| android:id="@+id/nav_icon" |
| android:layout_width="@dimen/car_ui_toolbar_icon_size" |
| android:layout_height="@dimen/car_ui_toolbar_icon_size" |
| android:layout_gravity="center" |
| android:scaleType="fitXY" |
| style="@style/Widget.CarUi.Toolbar.NavIcon"/> |
| <ImageView |
| android:id="@+id/logo" |
| android:layout_width="@dimen/car_ui_toolbar_icon_size" |
| android:layout_height="@dimen/car_ui_toolbar_icon_size" |
| android:layout_gravity="center" |
| android:scaleType="fitXY"/> |
| </FrameLayout> |
| |
| <TextView |
| android:id="@+id/title" |
| android:layout_width="0dp" |
| android:layout_height="wrap_content" |
| android:layout_marginStart="@dimen/car_ui_toolbar_title_margin_start" |
| style="@style/TextAppearance.CarUi.Widget.Toolbar.Title" |
| app:layout_constraintTop_toTopOf="@id/toolbar_top_guideline" |
| app:layout_constraintBottom_toTopOf="@id/toolbar_bottom_guideline" |
| app:layout_constraintStart_toEndOf="@+id/toolbar_start_margin_guideline" |
| app:layout_constraintEnd_toStartOf="@+id/menu_items_container"/> |
| |
| <com.android.car.ui.toolbar.TabLayout |
| android:id="@+id/tabs" |
| android:layout_width="wrap_content" |
| android:layout_height="0dp" |
| app:layout_constraintTop_toTopOf="@id/toolbar_top_guideline" |
| app:layout_constraintBottom_toTopOf="@id/toolbar_bottom_guideline" |
| app:layout_constraintStart_toEndOf="@+id/nav_icon_container" |
| app:layout_constraintEnd_toStartOf="@+id/menu_items_container" |
| app:layout_constraintHorizontal_bias="0.0"/> |
| |
| <FrameLayout |
| android:id="@+id/custom_view_container" |
| android:layout_width="0dp" |
| android:layout_height="0dp" |
| android:visibility="gone" |
| app:layout_constraintTop_toTopOf="@id/toolbar_top_guideline" |
| app:layout_constraintBottom_toTopOf="@id/toolbar_bottom_guideline" |
| app:layout_constraintStart_toEndOf="@+id/nav_icon_container" |
| app:layout_constraintEnd_toStartOf="@+id/menu_items_container"/> |
| |
| <LinearLayout |
| android:id="@+id/menu_items_container" |
| android:layout_width="wrap_content" |
| android:layout_height="0dp" |
| android:orientation="horizontal" |
| android:divider="@drawable/car_ui_toolbar_menu_item_divider" |
| android:showDividers="beginning|middle|end" |
| app:layout_constraintTop_toTopOf="@id/toolbar_top_guideline" |
| app:layout_constraintBottom_toTopOf="@id/toolbar_bottom_guideline" |
| app:layout_constraintEnd_toStartOf="@+id/car_ui_toolbar_overflow_button"/> |
| |
| <FrameLayout |
| android:id="@+id/car_ui_toolbar_overflow_button" |
| android:layout_width="@dimen/car_ui_touch_target_width" |
| android:layout_height="@dimen/car_ui_touch_target_height" |
| android:layout_marginLeft="@dimen/car_ui_toolbar_menu_item_margin" |
| android:layout_marginRight="@dimen/car_ui_toolbar_menu_item_margin" |
| android:visibility="gone" |
| app:layout_constraintTop_toTopOf="@id/toolbar_top_guideline" |
| app:layout_constraintBottom_toTopOf="@id/bottom_styleable" |
| app:layout_constraintEnd_toEndOf="@id/toolbar_end_guideline"> |
| <ImageView |
| android:src="@drawable/car_ui_icon_overflow_menu" |
| android:layout_width="@dimen/car_ui_primary_icon_size" |
| android:layout_height="@dimen/car_ui_primary_icon_size" |
| android:layout_gravity="center" |
| android:background="@drawable/car_ui_toolbar_icon_background" |
| android:tint="@color/car_ui_toolbar_icon_tint" |
| android:tintMode="src_in"/> |
| </FrameLayout> |
| |
| <com.android.car.ui.toolbar.SearchView |
| android:id="@+id/search_view" |
| android:layout_width="0dp" |
| android:layout_height="match_parent" |
| android:visibility="gone" |
| app:layout_constraintTop_toTopOf="@id/toolbar_top_guideline" |
| app:layout_constraintBottom_toTopOf="@id/toolbar_bottom_guideline" |
| app:layout_constraintStart_toEndOf="@+id/nav_icon_container" |
| app:layout_constraintEnd_toStartOf="@+id/menu_items_container"/> |
| |
| <!-- can't use 0dp for layout_height or the constraintlayout effect kicks in --> |
| <View |
| android:id="@+id/bottom_styleable" |
| android:layout_width="match_parent" |
| android:layout_height="0.01dp" |
| app:layout_constraintBottom_toBottomOf="parent" |
| app:layout_constraintStart_toStartOf="parent" |
| app:layout_constraintEnd_toEndOf="parent"/> |
| </androidx.constraintlayout.widget.ConstraintLayout> |