buildSlider method

Widget buildSlider(
  1. String label,
  2. double value,
  3. double min,
  4. double max,
  5. ValueChanged<double> onChanged, {
  6. String? displayValue,
  7. int decimals = 0,
})

Build a labeled slider with value display

Implementation

Widget buildSlider(
  String label,
  double value,
  double min,
  double max,
  ValueChanged<double> onChanged, {
  String? displayValue,
  int decimals = 0,
}) {
  final display = displayValue ??
      (decimals > 0 ? value.toStringAsFixed(decimals) : '${value.toInt()}px');

  return Column(
    crossAxisAlignment: CrossAxisAlignment.start,
    children: [
      Row(
        mainAxisAlignment: MainAxisAlignment.spaceBetween,
        children: [
          Text(label, style: const TextStyle(fontSize: 13)),
          Text(
            display,
            style: const TextStyle(
              fontSize: 13,
              fontWeight: FontWeight.bold,
              color: Colors.blue,
            ),
          ),
        ],
      ),
      Slider(
        value: value.clamp(min, max),
        min: min,
        max: max,
        onChanged: (v) {
          onChanged(v);
          onUpdate();
        },
        activeColor: Colors.blue,
      ),
      const SizedBox(height: 8),
    ],
  );
}