showSliderDialog function

void showSliderDialog({
  1. required BuildContext context,
  2. required String title,
  3. required int divisions,
  4. required double min,
  5. required double max,
  6. required double value,
  7. required Stream<double> stream,
  8. required ValueChanged<double> onChanged,
})

Implementation

void showSliderDialog({
  required BuildContext context,
  required String title,
  required int divisions,
  required double min,
  required double max,
  required double value,
  required Stream<double> stream,
  required ValueChanged<double> onChanged,
}) {
  showDialog<void>(
    context: context,
    builder: (BuildContext context) {
      return AlertDialog(
        title: Text(title),
        content: StreamBuilder<double>(
          stream: stream,
          builder: (context, snapshot) {
            return Container(
              height: 100.0,
              child: Column(
                children: [
                  Text(snapshot.data?.toStringAsFixed(1) ??
                      value.toStringAsFixed(1)),
                  Slider(
                    divisions: divisions,
                    min: min,
                    max: max,
                    value: snapshot.data ?? value,
                    onChanged: onChanged,
                  ),
                ],
              ),
            );
          },
        ),
      );
    },
  );
}