[Catalog][Slider] consolidate slider switches to a single switch

PiperOrigin-RevId: 435719291
This commit is contained in:
jeremymuhia 2022-03-18 20:20:51 +00:00 committed by Jeremy Muhia
parent 0d91f4ac3b
commit 315c496cf8
3 changed files with 29 additions and 48 deletions

View File

@ -23,12 +23,12 @@ import androidx.appcompat.widget.SwitchCompat;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import androidx.annotation.IdRes;
import androidx.annotation.Nullable;
import com.google.android.material.slider.BasicLabelFormatter;
import com.google.android.material.slider.LabelFormatter;
import com.google.android.material.slider.Slider;
import io.material.catalog.feature.DemoFragment;
import java.util.Arrays;
import java.util.List;
/**
* Fragment to display a few basic uses of the {@link Slider} widget in discrete mode for the
@ -43,23 +43,25 @@ public class SliderDiscreteDemoFragment extends DemoFragment {
View view =
inflater.inflate(R.layout.cat_slider_demo_discrete, viewGroup, false /* attachToRoot */);
setUpSlider(view, R.id.switch_button_1, R.id.slider_1, null);
setUpSlider(view, R.id.switch_button_2, R.id.slider_2, null);
setUpSlider(view, R.id.switch_button_3, R.id.slider_3, null);
setUpSlider(view, R.id.switch_button_4, R.id.slider_4, new BasicLabelFormatter());
setUpSlider(view, R.id.switch_button_5, R.id.slider_5, null);
setUpSlider(view, R.id.switch_button_6, R.id.slider_6, null);
Slider withLabelFormatter = view.findViewById(R.id.slider_4);
withLabelFormatter.setLabelFormatter(new BasicLabelFormatter());
List<Slider> sliders = Arrays.asList(
view.findViewById(R.id.slider_1),
view.findViewById(R.id.slider_2),
view.findViewById(R.id.slider_3),
withLabelFormatter,
view.findViewById(R.id.slider_5),
view.findViewById(R.id.slider_6)
);
sliders.get(3).setLabelFormatter(new BasicLabelFormatter());
SwitchCompat switchButton = view.findViewById(R.id.switch_button);
switchButton.setOnCheckedChangeListener((buttonView, isChecked) -> {
for (Slider slider : sliders) {
slider.setEnabled(isChecked);
}
});
return view;
}
private void setUpSlider(
View view, @IdRes int switchId, @IdRes int sliderId, LabelFormatter labelFormatter) {
final Slider slider = view.findViewById(sliderId);
slider.setLabelFormatter(labelFormatter);
SwitchCompat switchButton = view.findViewById(switchId);
switchButton.setOnCheckedChangeListener(
(buttonView, isChecked) -> slider.setEnabled(isChecked));
switchButton.setChecked(true);
}
}

View File

@ -38,11 +38,6 @@
android:layout_height="wrap_content"
android:gravity="center_vertical">
<androidx.appcompat.widget.SwitchCompat
android:id="@+id/switch_button_1"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
<com.google.android.material.slider.Slider
android:id="@+id/slider_1"
android:layout_width="0dp"
@ -66,11 +61,6 @@
android:layout_height="wrap_content"
android:gravity="center_vertical">
<androidx.appcompat.widget.SwitchCompat
android:id="@+id/switch_button_2"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
<com.google.android.material.slider.Slider
android:id="@+id/slider_2"
android:layout_width="0dp"
@ -94,11 +84,6 @@
android:layout_height="wrap_content"
android:gravity="center_vertical">
<androidx.appcompat.widget.SwitchCompat
android:id="@+id/switch_button_3"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
<com.google.android.material.slider.Slider
android:id="@+id/slider_3"
android:layout_width="0dp"
@ -122,11 +107,6 @@
android:layout_height="wrap_content"
android:gravity="center_vertical">
<androidx.appcompat.widget.SwitchCompat
android:id="@+id/switch_button_4"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
<com.google.android.material.slider.Slider
android:id="@+id/slider_4"
android:layout_width="0dp"
@ -150,11 +130,6 @@
android:layout_height="wrap_content"
android:gravity="center_vertical">
<androidx.appcompat.widget.SwitchCompat
android:id="@+id/switch_button_5"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
<com.google.android.material.slider.Slider
android:id="@+id/slider_5"
android:layout_width="0dp"
@ -178,11 +153,6 @@
android:layout_height="wrap_content"
android:gravity="center_vertical">
<androidx.appcompat.widget.SwitchCompat
android:id="@+id/switch_button_6"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
<com.google.android.material.slider.Slider
android:id="@+id/slider_6"
android:layout_width="0dp"
@ -195,5 +165,13 @@
android:stepSize="1"
app:tickVisible="false"/>
</LinearLayout>
<com.google.android.material.switchmaterial.SwitchMaterial
android:id="@+id/switch_button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:checked="true"
android:text="@string/cat_slider_enabled"/>
</LinearLayout>
</ScrollView>

View File

@ -29,6 +29,7 @@
Discrete sliders allow users to select a specific value from a range.
</string>
<string name="cat_slider_enabled" description="">Enabled</string>
<string name="cat_slider_set" description="The label for a set button [CHAR LIMIT=NONE]">Set</string>
<string name="cat_slider_title_1" description="The title for the first demonstration slider [CHAR LIMIT=NONE]">This one goes to eleven</string>
<string name="cat_slider_title_2" description="The title for a demonstration slider [CHAR LIMIT=NONE]">From 100 to 1000</string>