Search code examples
flutterdartflutter-layoutflutter-testflutter-slider

Flutter Failed assertion: 'value >= min && value <= max': is not true. in slider


I want to get the dynamic data from the database to the slider value. But firstly it gives me the error of value type double so I convert my string data to double and now it gives me the error of. Failed assertion: line 147 pos 15: 'value >= min && value <= max': is not true.. Please help me with how to solve this error. where I can define the min-max value which comes from database

value comes from databse:- 17.00 in data[0]['distance']

Here is my code:-

class Editprofile extends StatefulWidget {

Editprofile({Key? key}) : super(key: key);

 @override
_Editprofile createState() => _Editprofile();
}


class _Editprofile extends State<Editprofile>{

 var UsrID = Auth.prefs?.getString('usrid');

var data;

@override
 void initState() {
  super.initState();
  getData();
}

getData() async{
 var res = await http.get(Uri.https('www.*******.net', 
 '/mm_api/index.php',{'act':'profile','UsrID': '${UsrID}'}));
  data = jsonDecode(res.body);
  print(data);
  setState(() {});
  print(res.body);
}

 var distnce = double.parse('${data[0]['distance']}');

  double _vlaue = distnce;
  void _setvalue(double vlaue) => setState(() => _vlaue = vlaue,);

  var _distance = " ${(_vlaue * 100).round()} ";

@override
 Widget build(BuildContext context){
  

  return Scaffold(
  Container(
     child: Column(
       //padding: new EdgeInsets.all(0.0),
       //child: new Center(
       children: [
          Row(
             mainAxisAlignment: MainAxisAlignment.spaceBetween,
             children:[
                Text(
                  'Distance',
                  style: TextStyle(
                  color: Color(0xff2c3531),
                  ),
                 ),
                Directionality(
                    textDirection: TextDirection.ltr,
                    child: Text(
                    '${(_vlaue * 100).round()} miles',
                    style: TextStyle(
                    color: Color(0xff2c3531),
                    ),
                   ),
                  ),
                 ]
                ),
                SizedBox(
                 child: Slider(
                 min:  0,
                 max:  100,
                 value: _vlaue,
                 onChanged: _setvalue,
                 inactiveColor: Color(0xff9a9a9a),
                 activeColor: Color(0xff8f9df2),
                 thumbColor: Color(0xff8f9df2),
                 ),
                 ),
                 Row(
                    mainAxisAlignment: MainAxisAlignment.spaceBetween,
                    children:[
                     Text(
                        '1 Miles',
                        style: TextStyle(
                        color: Color(0xff2c3531),
                     ),
                     ),
                     Directionality(
                       textDirection: TextDirection.ltr,
                          child: Text(
                          '100 Miles',
                          style: TextStyle(
                          color: Color(0xff2c3531),
                           ),
                           ),
                           ),
                         ]
                       ),
                      ],

                     // )
                  ),
                 )
       )
       }

Anyone, please help me to understand this error Here is the error image:- Slider min max value error


Solution

  • This will help you

    class EditProfile extends StatefulWidget {
      const EditProfile({Key? key}) : super(key: key);
    
      @override
      _EditProfile createState() => _EditProfile();
    }
    
    class _EditProfile extends State<EditProfile> {
      var UsrID = Auth.prefs?.getString('usrid');
      var data;
    
      double distnce = 0;
      double _vlaue = 0;
      String _distance = "";
    
      @override
      void initState() {
        super.initState();
        getData();
      }
    
      @override
      void dispose() {
        super.dispose();
      }
    
      void _setvalue(double vlaue) => setState(
            () => _vlaue = vlaue,
          );
    
      getData() async {
        var res = await http.get(Uri.https('www.*******.net',
            '/mm_api/index.php', {'act': 'profile', 'UsrID': '${UsrID}'}));
        data = jsonDecode(res.body);
        distnce = double.parse('${data[0]['distance']}');
        _vlaue = distnce;
        _distance = " ${(_vlaue * 100).round()} ";
        setState(() {});
      }
    
      @override
      Widget build(BuildContext context) {
        return Scaffold(
            body: Column(
          //padding: new EdgeInsets.all(0.0),
          //child: new Center(
          children: [
            Row(mainAxisAlignment: MainAxisAlignment.spaceBetween, children: [
              const Text(
                'Distance',
                style: TextStyle(
                  color: Color(0xff2c3531),
                ),
              ),
              Directionality(
                textDirection: TextDirection.ltr,
                child: Text(
                  '${(_vlaue * 100).round()} miles',
                  style: const TextStyle(
                    color: Color(0xff2c3531),
                  ),
                ),
              ),
            ]),
            SizedBox(
              child: Slider(
                min: 0,
                max: 100,
                value: _vlaue,
                onChanged: _setvalue,
                inactiveColor: const Color(0xff9a9a9a),
                activeColor: const Color(0xff8f9df2),
                thumbColor: const Color(0xff8f9df2),
              ),
            ),
            Row(mainAxisAlignment: MainAxisAlignment.spaceBetween, children: const [
              Text(
                '1 Miles',
                style: TextStyle(
                  color: Color(0xff2c3531),
                ),
              ),
              Directionality(
                textDirection: TextDirection.ltr,
                child: Text(
                  '100 Miles',
                  style: TextStyle(
                    color: Color(0xff2c3531),
                  ),
                ),
              ),
            ]),
          ],
    
          // )
        ));
      }
    }