Skip to content

Commit 315c496

Browse files
committed
[Catalog][Slider] consolidate slider switches to a single switch
PiperOrigin-RevId: 435719291
1 parent 0d91f4a commit 315c496

3 files changed

Lines changed: 29 additions & 48 deletions

File tree

catalog/java/io/material/catalog/slider/SliderDiscreteDemoFragment.java

Lines changed: 20 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -23,12 +23,12 @@
2323
import android.view.LayoutInflater;
2424
import android.view.View;
2525
import android.view.ViewGroup;
26-
import androidx.annotation.IdRes;
2726
import androidx.annotation.Nullable;
2827
import com.google.android.material.slider.BasicLabelFormatter;
29-
import com.google.android.material.slider.LabelFormatter;
3028
import com.google.android.material.slider.Slider;
3129
import io.material.catalog.feature.DemoFragment;
30+
import java.util.Arrays;
31+
import java.util.List;
3232

3333
/**
3434
* Fragment to display a few basic uses of the {@link Slider} widget in discrete mode for the
@@ -43,23 +43,25 @@ public View onCreateDemoView(
4343
View view =
4444
inflater.inflate(R.layout.cat_slider_demo_discrete, viewGroup, false /* attachToRoot */);
4545

46-
setUpSlider(view, R.id.switch_button_1, R.id.slider_1, null);
47-
setUpSlider(view, R.id.switch_button_2, R.id.slider_2, null);
48-
setUpSlider(view, R.id.switch_button_3, R.id.slider_3, null);
49-
setUpSlider(view, R.id.switch_button_4, R.id.slider_4, new BasicLabelFormatter());
50-
setUpSlider(view, R.id.switch_button_5, R.id.slider_5, null);
51-
setUpSlider(view, R.id.switch_button_6, R.id.slider_6, null);
46+
Slider withLabelFormatter = view.findViewById(R.id.slider_4);
47+
withLabelFormatter.setLabelFormatter(new BasicLabelFormatter());
48+
List<Slider> sliders = Arrays.asList(
49+
view.findViewById(R.id.slider_1),
50+
view.findViewById(R.id.slider_2),
51+
view.findViewById(R.id.slider_3),
52+
withLabelFormatter,
53+
view.findViewById(R.id.slider_5),
54+
view.findViewById(R.id.slider_6)
55+
);
56+
sliders.get(3).setLabelFormatter(new BasicLabelFormatter());
57+
SwitchCompat switchButton = view.findViewById(R.id.switch_button);
5258

53-
return view;
54-
}
59+
switchButton.setOnCheckedChangeListener((buttonView, isChecked) -> {
60+
for (Slider slider : sliders) {
61+
slider.setEnabled(isChecked);
62+
}
63+
});
5564

56-
private void setUpSlider(
57-
View view, @IdRes int switchId, @IdRes int sliderId, LabelFormatter labelFormatter) {
58-
final Slider slider = view.findViewById(sliderId);
59-
slider.setLabelFormatter(labelFormatter);
60-
SwitchCompat switchButton = view.findViewById(switchId);
61-
switchButton.setOnCheckedChangeListener(
62-
(buttonView, isChecked) -> slider.setEnabled(isChecked));
63-
switchButton.setChecked(true);
65+
return view;
6466
}
6567
}

catalog/java/io/material/catalog/slider/res/layout/cat_slider_demo_discrete.xml

Lines changed: 8 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -38,11 +38,6 @@
3838
android:layout_height="wrap_content"
3939
android:gravity="center_vertical">
4040

41-
<androidx.appcompat.widget.SwitchCompat
42-
android:id="@+id/switch_button_1"
43-
android:layout_width="wrap_content"
44-
android:layout_height="wrap_content" />
45-
4641
<com.google.android.material.slider.Slider
4742
android:id="@+id/slider_1"
4843
android:layout_width="0dp"
@@ -66,11 +61,6 @@
6661
android:layout_height="wrap_content"
6762
android:gravity="center_vertical">
6863

69-
<androidx.appcompat.widget.SwitchCompat
70-
android:id="@+id/switch_button_2"
71-
android:layout_width="wrap_content"
72-
android:layout_height="wrap_content" />
73-
7464
<com.google.android.material.slider.Slider
7565
android:id="@+id/slider_2"
7666
android:layout_width="0dp"
@@ -94,11 +84,6 @@
9484
android:layout_height="wrap_content"
9585
android:gravity="center_vertical">
9686

97-
<androidx.appcompat.widget.SwitchCompat
98-
android:id="@+id/switch_button_3"
99-
android:layout_width="wrap_content"
100-
android:layout_height="wrap_content" />
101-
10287
<com.google.android.material.slider.Slider
10388
android:id="@+id/slider_3"
10489
android:layout_width="0dp"
@@ -122,11 +107,6 @@
122107
android:layout_height="wrap_content"
123108
android:gravity="center_vertical">
124109

125-
<androidx.appcompat.widget.SwitchCompat
126-
android:id="@+id/switch_button_4"
127-
android:layout_width="wrap_content"
128-
android:layout_height="wrap_content" />
129-
130110
<com.google.android.material.slider.Slider
131111
android:id="@+id/slider_4"
132112
android:layout_width="0dp"
@@ -150,11 +130,6 @@
150130
android:layout_height="wrap_content"
151131
android:gravity="center_vertical">
152132

153-
<androidx.appcompat.widget.SwitchCompat
154-
android:id="@+id/switch_button_5"
155-
android:layout_width="wrap_content"
156-
android:layout_height="wrap_content" />
157-
158133
<com.google.android.material.slider.Slider
159134
android:id="@+id/slider_5"
160135
android:layout_width="0dp"
@@ -178,11 +153,6 @@
178153
android:layout_height="wrap_content"
179154
android:gravity="center_vertical">
180155

181-
<androidx.appcompat.widget.SwitchCompat
182-
android:id="@+id/switch_button_6"
183-
android:layout_width="wrap_content"
184-
android:layout_height="wrap_content" />
185-
186156
<com.google.android.material.slider.Slider
187157
android:id="@+id/slider_6"
188158
android:layout_width="0dp"
@@ -195,5 +165,13 @@
195165
android:stepSize="1"
196166
app:tickVisible="false"/>
197167
</LinearLayout>
168+
169+
<com.google.android.material.switchmaterial.SwitchMaterial
170+
android:id="@+id/switch_button"
171+
android:layout_width="wrap_content"
172+
android:layout_height="wrap_content"
173+
android:layout_gravity="center_horizontal"
174+
android:checked="true"
175+
android:text="@string/cat_slider_enabled"/>
198176
</LinearLayout>
199177
</ScrollView>

catalog/java/io/material/catalog/slider/res/values/strings.xml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@
2929
Discrete sliders allow users to select a specific value from a range.
3030
</string>
3131

32+
<string name="cat_slider_enabled" description="">Enabled</string>
3233
<string name="cat_slider_set" description="The label for a set button [CHAR LIMIT=NONE]">Set</string>
3334
<string name="cat_slider_title_1" description="The title for the first demonstration slider [CHAR LIMIT=NONE]">This one goes to eleven</string>
3435
<string name="cat_slider_title_2" description="The title for a demonstration slider [CHAR LIMIT=NONE]">From 100 to 1000</string>

0 commit comments

Comments
 (0)