Флаттер показывает модальный нижний лист после сборки
Как сказано в заголовке, у меня есть параметр String, и когда я загружаю виджет Home Stateful, я хотел бы открыть этот нижний лист, если параметр не равен нулю.
Как я понял не могу позвонить
showModalBottomSheet()
в функции сборки виджета Home, потому что он не может начать построение нижнего листа при создании виджета Home, поэтому есть ли способ вызвать это сразу после сборки домашнего виджета?
2 ответа
Решение
Одним из решений может быть использование функции addPostFrameCallback экземпляра SchedulerBinding. Таким образом, вы можете вызвать showModalBottomSheet после создания виджета Home.
import 'package:flutter/scheduler.dart';
...
@override
Widget build(BuildContext context) {
SchedulerBinding.instance.addPostFrameCallback((timeStamp) {
showModalBottomSheet<void>(
context: context,
builder: (BuildContext context) {
//Your builder code
},
);
});
//Return widgets tree for Home
}
Вот один способ:
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
WidgetsBinding.instance.addPostFrameCallback((timeStamp) {
showModalBottomSheet(
context: context,
builder: (BuildContext context) {
return Container(
child: Text('heyooo'),
);
}
);
});
return Scaffold(
appBar: AppBar(),
body: Container(),
);
}
}