我有下一個代碼:
class _ReadingBookPage extends State<ReadingBookPage> {
double _sizeFont = 14;
...
@override
Widget build(BuildContext context) {
return Scaffold(
body: ...
GestureDetector(
onTap: () {
showModalBottomSheet(...) // Here _getSettings is called
...
}
Widget _getSettings() {
return Container(
...
Slider(
value: _sizeFont.toDouble(),
min: 0,
max: 18,
label: _sizeFont.round().toString(),
activeColor: Colors.black,
onChanged: (double value) =>
setState(() => _sizeFont = value)),
...
}
}
當我移動滑塊時,_sizeFont 會發生變化,但滑塊不會移動。但是當我再次單擊物件(GestureDetector)時,Slider 的位置將更改為該值。我該如何解決?
uj5u.com熱心網友回復:
使用 StatefulBuilderon更新對話框 UI showModalBottomSheet。builder并將其傳遞setState給 _getSettings方法。
showModalBottomSheet(
context: context,
builder: (context) => StatefulBuilder(builder: (context, setState) {
...
return _getSettings(setState);
還包括 setState 的引數。
Widget _getSettings(setState) { ...}
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/491021.html
