Tengo rango dinámico en la aplicación Flutter dentro del futuro constructor:

child: Slider(
    activeColor: Colors.yellow,
    inactiveColor: Colors.yellow,
    max: 100,
    min: 0,
    divisions: 10,
    value: _value,
    label: _value.toString(),
    onChanged: (double val) {},
    onChangeEnd: (val) {
       create_list(u_id, m_id, w_id,
       did, item.act_id, val);
       myNewList.forEach((item) {
            send_degree(
                 item.u_id,
                 item.act_id,
                 item.digree,
                 item.w_id,
                 item.d_id,
                 item.m_id);
              });
              myNewList.clear();
              setState(() {
                   _value = val;
                   item.mydigree = _value;
                   });
                 },
          ),

Los métodos dentro del rango son:

    create_list(u_id, m_id, w_id, did, act_id, val) async {
      u_id = int.parse(u_id);
      act_id = int.parse(act_id);

      DegreeToSend newList = DegreeToSend(u_id, m_id, w_id, did, act_id, val);
      myNewList.add(newList);

      return myNewList;
    }

// Insert Func
    send_degree(uId, actId, degree, w_id, did, m_id) async {
      var sendData = {
        'u_id': uId.toString(),
        'act_id': actId.toString(),
        'digree': degree.toString(),
        'm_id': m_id.toString(),
        'd_id': did.toString(),
        'w_id': w_id.toString()
      };
      var url = 'https://srdtraining.com/api/controller/data/changedata.php';
      var response = await http.post(url, body: sendData);
    }

Cuando quiero desplazar el rango por un valor, se vuelve a cero como se muestra en el video adjunto en el siguiente enlace:

https://streamable.com/xm64q0

¿Cómo puedo resolver esto?

-1
SM_Berwari 16 oct. 2020 a las 20:11

1 respuesta

La mejor respuesta

Resolví el problema usando la lista de valores del rango:

List _value = [];

Slider(
                              activeColor: Colors.yellow,
                              inactiveColor: Colors.yellow,
                              max: 100,
                              min: 0,
                              divisions: 10,
                              value: _value[index].toDouble(),
                              label: _value[index].toString(),
                              onChanged: (double val) {
                                setState(() {
                                  _value[index] = val.toString();
                                  snapshot.data[index].mydigree =
                                      double.parse(_value[index]);
                                });
                              },
                              onChangeEnd: (val) {
                                send_degree(
                                    u_id,
                                    snapshot.data[index].act_id,
                                    snapshot.data[index].mydigree,
                                    w_id,
                                    did,
                                    m_id);
                                if (savedDayId == rdata['savedDayID']) {
                                  setState(() {
                                    newSavedDayId = savedDayId + 1;
                                  });
                                }
                                print('new newSavedDayId');
                                print(newSavedDayId);
                              },
                            ),
0
SM_Berwari 17 oct. 2020 a las 09:27