颤振中底片上滑块的实现

dee*_*pan 1 flutter bottom-sheet

如何在颤动的底片内实现滑块。我试过了,但滑块没有移动。但是如果我把滑块放在一个新的脚手架上,它就起作用了。帮我。提前致谢。

这是我的代码。

                          new InkWell(
                                onTap: () {
                                  //  fire_ac_on_1();
                                },
                               onDoubleTap:(){
                                  _showModalSheet_ac();

                                }

                                onLongPress: () {
                                  selectTime(context);
                                },
                                child: new IconButton(
                                  icon: new Image.asset('images/ac.png',
                                      color: ac_on_state == true ? Colors
                                          .green : Colors.redAccent),
                                  onPressed: () {
                                    fire_ac_on();
                                  },
                                  iconSize: 80.0,
                                ),
                              ),
Run Code Online (Sandbox Code Playgroud)

// ModalBottom Sheet void _showModalSheet_ac(){

double height = MediaQuery.of(context).size.height;
//print(height);
showModalBottomSheet(context: context, builder: (builder){
  return new Container(
    height: height - 200.0,
      child: new Center(
        child:  new Column(
          children: <Widget>[
            new Container(
             child: new Slider(
              value: slider_value,
           onChanged: onchanged),

          )
            )
          ],
        ),
      )
  );
});
Run Code Online (Sandbox Code Playgroud)

}

onchanged(双值){

 setState(() {
  slider_value = value;

});
print(slider_value);
Run Code Online (Sandbox Code Playgroud)

}

Emm*_*oza 11

bottomSheet 不是有状态的,这就是为什么当您在 Slider 中调用 setState 时它不会重建的原因。

您必须使用 StatefulBuilder 包装您的 Slider 小部件。

        StatefulBuilder(
          builder: (context, setState){
            return Slider(
              value: _value,
              onChanged: (selection){
                setState(() {
                  _value = selection;
                });
              },
            );
          },
        ),
Run Code Online (Sandbox Code Playgroud)