Имеет навигацию Купертино, чтобы показать панель приложения, но нужен конечный ящик
Я пытаюсь добавить CupertinoNavigationBar
с помощью endDrawer я пытаюсь добавить детектор жестов в конце, но это не работает, показывает следующее:
The following assertion was thrown while handling a gesture:
flutter: `Scaffold.of()` called with a context that does not contain a Scaffold.
flutter: No Scaffold ancestor could be found starting from the context that was passed to `Scaffold.of()`. This
flutter: usually happens when the context provided is from the same StatefulWidget as that whose build
Я уже пытался добавить ключ к скаффолду и пытаться открыть с ключом, я тоже пытаюсь с контекстом скаффолда в панели приложений
AppBar:
Scaffold(
appBar: CupertinoNavigationBar(
transitionBetweenRoutes: true,
trailing: IconButton(
icon: Icon(Icons.menu),
onPressed: () {
Scaffold.of(context).openEndDrawer();
},),
actionsForegroundColor: Colors.white,
middle: Text('Lejour', style: TextStyle(color: Colors.white)),
backgroundColor: Theme.of(context).primaryColor),
endDrawer: DrawerMenu() // my own class,
body: // ...body
Я ожидаю, что мой конечный значок из CupertinoNavigationBar откроет endDrawer сScaffold.of(context).openEndDrawer();
1 ответ
Решение
Это общая проблема, когда вы пытаетесь использовать Scaffold.of(context)
, Вы должны прочитать журнал ошибок.
Не может быть найдено предка Скаффолда, начиная с контекста, который был передан
Scaffold.of()
Чтобы решить вашу проблему, используйте Builder
виджет для создания нового контекста.
trailing: Builder(
builder: (context) {
return IconButton(
icon: Icon(Icons.menu),
onPressed: () {
Scaffold.of(context).openEndDrawer();
},
);
},
),