Flutter 数字选择器不会在底部更新 sheet
Flutter number picker doesn't update on bottom sheet
我想在底部 sheet 对话框中使用 Flutter 数字选择器。但是当我通过滑动更改值时,数字选择器不会更新。
我的代码如下:
GestureDetector(
onTap: (){
showModalBottomSheet<int>(
context: context,
builder: (BuildContext context){
return new Container(
height: 350.0,
color: HexColor('FF737373'),
child: new Container(
decoration: new BoxDecoration(
color: Colors.white,
borderRadius: new BorderRadius.only(
topLeft: const Radius.circular(20.0),
topRight: const Radius.circular(20.0))),
child: new Center(
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
NumberPicker.integer(
initialValue: _currentValue,
minValue: 0,
maxValue: 1000,
),
],
),
)),
);
}
).then((int value) {
if (value != null) {
setState(() => _currentValue = value);
}
});
},
child: Container(
//container
),
),
我不明白你的目标是什么,但我希望这对你有所帮助:
showModalBottomSheet<int>(
context: context,
builder: (BuildContext context){
return StatefulBuilder(
builder: (BuildContext context, StateSetter setModalState) {
return Container(
height: 350.0,
child: Container(
decoration: BoxDecoration(
color: Colors.white,
borderRadius: BorderRadius.only(
topLeft: const Radius.circular(20.0),
topRight: const Radius.circular(20.0)
)
),
child: Center(
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
NumberPicker.integer(
initialValue: _currentValue,
minValue: 0,
maxValue: 1000,
onChanged: (value) {
setModalState(() {
_currentValue = value;
});
}
),
],
),
)
),
);
}
);
}
).then((int value) {
if(value != null) {
setState(() => _currentValue = value);
}
});
我想在底部 sheet 对话框中使用 Flutter 数字选择器。但是当我通过滑动更改值时,数字选择器不会更新。
我的代码如下:
GestureDetector(
onTap: (){
showModalBottomSheet<int>(
context: context,
builder: (BuildContext context){
return new Container(
height: 350.0,
color: HexColor('FF737373'),
child: new Container(
decoration: new BoxDecoration(
color: Colors.white,
borderRadius: new BorderRadius.only(
topLeft: const Radius.circular(20.0),
topRight: const Radius.circular(20.0))),
child: new Center(
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
NumberPicker.integer(
initialValue: _currentValue,
minValue: 0,
maxValue: 1000,
),
],
),
)),
);
}
).then((int value) {
if (value != null) {
setState(() => _currentValue = value);
}
});
},
child: Container(
//container
),
),
我不明白你的目标是什么,但我希望这对你有所帮助:
showModalBottomSheet<int>(
context: context,
builder: (BuildContext context){
return StatefulBuilder(
builder: (BuildContext context, StateSetter setModalState) {
return Container(
height: 350.0,
child: Container(
decoration: BoxDecoration(
color: Colors.white,
borderRadius: BorderRadius.only(
topLeft: const Radius.circular(20.0),
topRight: const Radius.circular(20.0)
)
),
child: Center(
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
NumberPicker.integer(
initialValue: _currentValue,
minValue: 0,
maxValue: 1000,
onChanged: (value) {
setModalState(() {
_currentValue = value;
});
}
),
],
),
)
),
);
}
);
}
).then((int value) {
if(value != null) {
setState(() => _currentValue = value);
}
});