• Taha Tesser's avatar
    Fix `Slider` `onChanged` callback order & never calls `onChangeStart` on ... · 4f959b97
    Taha Tesser authored
    Fix `Slider` `onChanged` callback order & never calls `onChangeStart` on  `SliderInteraction.slideOnly` allowed interaction (#136720)
    
    fixes [Slider will call onChanged before onChangeStart when sliding.](https://github.com/flutter/flutter/issues/136707)
    
    This fixes a regression from https://github.com/flutter/flutter/pull/121483
    
    ### Code sample
    
    <details>
    <summary>expand to view the code sample</summary> 
    
    ```dart
    import 'package:flutter/material.dart';
    
    void main() => runApp(const MyApp());
    
    class MyApp extends StatelessWidget {
      const MyApp({super.key});
    
      @override
      Widget build(BuildContext context) {
        return const MaterialApp(
          debugShowCheckedModeBanner: false,
          home: Example(),
        );
      }
    }
    
    class Example extends StatefulWidget {
      const Example({super.key});
    
      @override
      State<Example> createState() => _ExampleState();
    }
    
    class _ExampleState extends State<Example> {
      double _sliderValue = 0.5;
    
      @override
      Widget build(BuildContext context) {
        return Scaffold(
          body: Center(
            child: Slider(
              // allowedInteraction: SliderInteraction.tapAndSlide,
              // allowedInteraction: SliderInteraction.tapOnly,
              // allowedInteraction: SliderInteraction.slideOnly
              // allowedInteraction: SliderInteraction.slideThumb,
              value: _sliderValue,
              onChangeStart: (newValue) {
                print("onChangeStart ......");
              },
              onChanged: (newValue) {
                print("onChanged ......");
                setState(() {
                  _sliderValue = newValue;
                });
              },
              onChangeEnd: (newValue) {
                print("onChangeEnd ......");
              },
            ),
          ),
        );
      }
    }
    ```
    
    </details>
    4f959b97
slider_test.dart 138 KB