125 lines
5.9 KiB
XML
125 lines
5.9 KiB
XML
|
<?xml version="1.0" encoding="utf-8"?>
|
||
|
<!--
|
||
|
~ Copyright (C) 2018 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.
|
||
|
-->
|
||
|
|
||
|
<!-- Layout used by SeekBarPreference for the seekbar widget style. Minimally adapted for use
|
||
|
with Slider instead of SeekBar. -->
|
||
|
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||
|
xmlns:tools="http://schemas.android.com/tools"
|
||
|
android:layout_width="match_parent"
|
||
|
android:layout_height="wrap_content"
|
||
|
android:minHeight="?android:attr/listPreferredItemHeightSmall"
|
||
|
android:gravity="center_vertical"
|
||
|
android:paddingStart="?android:attr/listPreferredItemPaddingStart"
|
||
|
android:paddingEnd="?android:attr/listPreferredItemPaddingEnd"
|
||
|
android:clipChildren="false"
|
||
|
android:clipToPadding="false"
|
||
|
android:baselineAligned="false">
|
||
|
|
||
|
<include layout="@layout/image_frame"/>
|
||
|
|
||
|
<LinearLayout
|
||
|
android:layout_width="match_parent"
|
||
|
android:layout_height="wrap_content"
|
||
|
android:orientation="vertical"
|
||
|
android:layout_marginTop="8dp"
|
||
|
android:layout_marginBottom="8dp"
|
||
|
android:clipChildren="false"
|
||
|
android:clipToPadding="false">
|
||
|
|
||
|
<RelativeLayout
|
||
|
android:layout_width="wrap_content"
|
||
|
android:layout_height="0dp"
|
||
|
android:layout_weight="1">
|
||
|
|
||
|
<TextView
|
||
|
android:id="@android:id/title"
|
||
|
android:labelFor="@id/slider"
|
||
|
android:layout_width="wrap_content"
|
||
|
android:layout_height="wrap_content"
|
||
|
android:singleLine="true"
|
||
|
android:textAppearance="?android:attr/textAppearanceListItem"
|
||
|
android:ellipsize="marquee"
|
||
|
tools:ignore="LabelFor,SelectableText" />
|
||
|
|
||
|
<TextView
|
||
|
android:id="@android:id/summary"
|
||
|
android:layout_width="wrap_content"
|
||
|
android:layout_height="wrap_content"
|
||
|
android:layout_below="@android:id/title"
|
||
|
android:layout_alignStart="@android:id/title"
|
||
|
android:layout_gravity="start"
|
||
|
android:textAlignment="viewStart"
|
||
|
android:textColor="?android:attr/textColorSecondary"
|
||
|
android:maxLines="4"
|
||
|
style="@style/PreferenceSummaryTextStyle"
|
||
|
tools:ignore="SelectableText" />
|
||
|
|
||
|
</RelativeLayout>
|
||
|
|
||
|
<!-- Using UnPressableLinearLayout as a workaround to disable the pressed state propagation
|
||
|
to the children of this container layout. Otherwise, the animated pressed state will also
|
||
|
play for the thumb in the AbsSeekBar in addition to the preference's ripple background.
|
||
|
The background of the SeekBar is also set to null to disable the ripple background -->
|
||
|
<androidx.preference.UnPressableLinearLayout
|
||
|
android:layout_width="match_parent"
|
||
|
android:layout_height="wrap_content"
|
||
|
android:gravity="center_vertical"
|
||
|
android:paddingLeft="0dp"
|
||
|
android:paddingStart="0dp"
|
||
|
android:paddingRight="0dp"
|
||
|
android:paddingEnd="0dp"
|
||
|
android:clipChildren="false"
|
||
|
android:clipToPadding="false">
|
||
|
|
||
|
<com.google.android.material.button.MaterialButton
|
||
|
android:id="@+id/decrement"
|
||
|
android:layout_width="wrap_content"
|
||
|
android:layout_height="wrap_content"
|
||
|
android:visibility="gone"
|
||
|
style="@style/Widget.Material3.Button.IconButton" />
|
||
|
|
||
|
<!-- The total height of the Seekbar widget's area should be 48dp - this allows for an
|
||
|
increased touch area so you do not need to exactly tap the thumb to move it. However,
|
||
|
setting the Seekbar height directly causes the thumb and seekbar to be misaligned on
|
||
|
API 22 and 23 - so instead we just set 15dp padding above and below, to account for the
|
||
|
18dp default height of the Seekbar thumb for a total of 48dp.
|
||
|
Note: we set 0dp padding at the start and end of this seekbar to allow it to properly
|
||
|
fit into the layout, but this means that there's no leeway on either side for touch
|
||
|
input - this might be something we should reconsider down the line. -->
|
||
|
<com.google.android.material.slider.Slider
|
||
|
android:id="@+id/slider"
|
||
|
android:layout_width="0dp"
|
||
|
android:layout_weight="1"
|
||
|
android:layout_height="wrap_content"
|
||
|
android:paddingLeft="@dimen/preference_seekbar_padding_horizontal"
|
||
|
android:paddingStart="@dimen/preference_seekbar_padding_horizontal"
|
||
|
android:paddingRight="@dimen/preference_seekbar_padding_horizontal"
|
||
|
android:paddingEnd="@dimen/preference_seekbar_padding_horizontal"
|
||
|
android:paddingTop="@dimen/preference_seekbar_padding_vertical"
|
||
|
android:paddingBottom="@dimen/preference_seekbar_padding_vertical"
|
||
|
android:background="@null"/>
|
||
|
|
||
|
<com.google.android.material.button.MaterialButton
|
||
|
android:id="@+id/increment"
|
||
|
android:layout_width="wrap_content"
|
||
|
android:layout_height="wrap_content"
|
||
|
android:visibility="gone"
|
||
|
style="@style/Widget.Material3.Button.IconButton" />
|
||
|
</androidx.preference.UnPressableLinearLayout>
|
||
|
</LinearLayout>
|
||
|
</LinearLayout>
|