| <?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="wrap_content" |
| android:tag="carUiListItem" |
| android:minHeight="@dimen/car_ui_list_item_height"> |
| |
| <!-- The following touch interceptor views are sized to encompass the specific sub-sections of |
| the list item view to easily control the bounds of a background ripple effects. --> |
| <View |
| android:id="@+id/touch_interceptor" |
| android:layout_width="0dp" |
| android:layout_height="0dp" |
| android:background="@drawable/car_ui_list_item_background" |
| android:clickable="true" |
| app:layout_constraintBottom_toBottomOf="parent" |
| app:layout_constraintEnd_toEndOf="parent" |
| app:layout_constraintStart_toStartOf="parent" |
| app:layout_constraintTop_toTopOf="parent" /> |
| |
| <!-- This touch interceptor does not include the action container --> |
| <View |
| android:id="@+id/reduced_touch_interceptor" |
| android:layout_width="0dp" |
| android:layout_height="0dp" |
| android:background="@drawable/car_ui_list_item_background" |
| android:clickable="true" |
| android:visibility="gone" |
| app:layout_constraintBottom_toBottomOf="parent" |
| app:layout_constraintEnd_toStartOf="@id/action_container" |
| app:layout_constraintStart_toStartOf="parent" |
| app:layout_constraintTop_toTopOf="parent" /> |
| |
| <androidx.constraintlayout.widget.Guideline |
| android:id="@+id/car_ui_list_item_start_guideline" |
| android:layout_width="wrap_content" |
| android:layout_height="wrap_content" |
| android:orientation="vertical" |
| app:layout_constraintGuide_begin="@dimen/car_ui_list_item_start_inset" /> |
| |
| <FrameLayout |
| android:id="@+id/icon_container" |
| android:layout_width="@dimen/car_ui_list_item_icon_container_width" |
| android:layout_height="0dp" |
| app:layout_constraintBottom_toBottomOf="parent" |
| app:layout_constraintStart_toStartOf="@+id/car_ui_list_item_start_guideline" |
| app:layout_constraintTop_toTopOf="parent"> |
| |
| <ImageView |
| android:id="@+id/icon" |
| android:layout_width="@dimen/car_ui_list_item_icon_size" |
| android:layout_height="@dimen/car_ui_list_item_icon_size" |
| android:layout_gravity="center" |
| android:visibility="gone" |
| android:scaleType="fitXY" /> |
| |
| <ImageView |
| android:id="@+id/content_icon" |
| android:layout_width="@dimen/car_ui_list_item_content_icon_width" |
| android:layout_height="@dimen/car_ui_list_item_content_icon_height" |
| android:layout_gravity="center" |
| android:visibility="gone" |
| android:scaleType="fitXY" /> |
| |
| <ImageView |
| android:id="@+id/avatar_icon" |
| android:background="@drawable/car_ui_list_item_avatar_icon_outline" |
| android:layout_width="@dimen/car_ui_list_item_avatar_icon_width" |
| android:layout_height="@dimen/car_ui_list_item_avatar_icon_height" |
| android:layout_gravity="center" |
| android:visibility="gone" |
| android:scaleType="fitXY" /> |
| </FrameLayout> |
| |
| <!-- Use nested layout as a workaround for a regression in constraintlayout where chains not |
| are not rendered correctly when the tail is gone (b/168627311).--> |
| <LinearLayout |
| android:id="@+id/text_container" |
| android:layout_width="0dp" |
| android:layout_height="wrap_content" |
| app:layout_constraintTop_toTopOf="parent" |
| app:layout_constraintBottom_toBottomOf="parent" |
| app:layout_constraintEnd_toStartOf="@id/action_container" |
| app:layout_constraintStart_toEndOf="@id/icon_container" |
| android:layout_marginStart="@dimen/car_ui_list_item_text_start_margin" |
| app:layout_goneMarginStart="@dimen/car_ui_list_item_text_no_icon_start_margin" |
| android:orientation="vertical"> |
| |
| <TextView |
| android:id="@+id/title" |
| android:layout_width="match_parent" |
| android:layout_height="wrap_content" |
| android:singleLine="@bool/car_ui_list_item_single_line_title" |
| android:textAppearance="@style/TextAppearance.CarUi.ListItem" /> |
| |
| <TextView |
| android:id="@+id/body" |
| android:layout_width="match_parent" |
| android:layout_height="wrap_content" |
| android:textAppearance="@style/TextAppearance.CarUi.ListItem.Body" /> |
| </LinearLayout> |
| |
| <!-- This touch interceptor is sized and positioned to encompass the action container --> |
| <View |
| android:id="@+id/action_container_touch_interceptor" |
| android:layout_width="0dp" |
| android:layout_height="0dp" |
| android:background="@drawable/car_ui_list_item_background" |
| android:clickable="true" |
| android:visibility="gone" |
| app:layout_constraintBottom_toBottomOf="@id/action_container" |
| app:layout_constraintEnd_toEndOf="@id/action_container" |
| app:layout_constraintStart_toStartOf="@id/action_container" |
| app:layout_constraintTop_toTopOf="@id/action_container" /> |
| |
| <FrameLayout |
| android:id="@+id/action_container" |
| android:layout_width="wrap_content" |
| android:minWidth="@dimen/car_ui_list_item_icon_container_width" |
| android:layout_height="0dp" |
| app:layout_constraintBottom_toBottomOf="parent" |
| app:layout_constraintEnd_toEndOf="@+id/car_ui_list_item_end_guideline" |
| app:layout_constraintTop_toTopOf="parent"> |
| |
| <View |
| android:id="@+id/action_divider" |
| android:layout_width="@dimen/car_ui_list_item_action_divider_width" |
| android:layout_height="@dimen/car_ui_list_item_action_divider_height" |
| android:layout_gravity="start|center_vertical" |
| android:background="@drawable/car_ui_list_item_divider" /> |
| |
| <Switch |
| android:id="@+id/switch_widget" |
| android:layout_width="wrap_content" |
| android:layout_height="wrap_content" |
| android:layout_gravity="center" |
| android:clickable="false" |
| android:focusable="false" /> |
| |
| <CheckBox |
| android:id="@+id/checkbox_widget" |
| android:layout_width="wrap_content" |
| android:layout_height="wrap_content" |
| android:layout_gravity="center" |
| android:clickable="false" |
| android:focusable="false" /> |
| |
| <RadioButton |
| android:id="@+id/radio_button_widget" |
| android:layout_width="wrap_content" |
| android:layout_height="wrap_content" |
| android:layout_gravity="center" |
| android:clickable="false" |
| android:focusable="false" /> |
| |
| <ImageView |
| android:id="@+id/supplemental_icon" |
| android:layout_width="@dimen/car_ui_list_item_supplemental_icon_size" |
| android:layout_height="@dimen/car_ui_list_item_supplemental_icon_size" |
| android:layout_gravity="center" |
| android:scaleType="fitXY" /> |
| </FrameLayout> |
| |
| <androidx.constraintlayout.widget.Guideline |
| android:id="@+id/car_ui_list_item_end_guideline" |
| android:layout_width="wrap_content" |
| android:layout_height="wrap_content" |
| android:orientation="vertical" |
| app:layout_constraintGuide_end="@dimen/car_ui_list_item_end_inset" /> |
| |
| </androidx.constraintlayout.widget.ConstraintLayout> |
| |