Как я могу показать полноэкранный режим InAppWebView, скрывая нижнюю навигацию? ⇐ Android
Как я могу показать полноэкранный режим InAppWebView, скрывая нижнюю навигацию?
Я использую приведенный ниже код для перехода к виджету, который показывает веб-просмотр
context.goNamed( Маршруты.webRoute.имя, параметры пути: { Params.webUrl.key: state.WebUrl, Params.Source.key: Source.Options.name, }, ); поскольку я использую goRouter, goNamed удалит все обратные стопки и отобразит веб-просмотр в полноэкранном режиме.
Но проблема в том, что когда я нажимаю обратно, приложение закрывается, поскольку у него нет обратного стека.
Очевидно, что я могу использовать pushNamed вместо goNamed, и обратная печать будет работать нормально. Но у меня есть нижняя навигация на экране, которая в этом случае не скрывается.
Кто-нибудь знает какой-нибудь обходной путь в этой ситуации, чтобы моя нижняя навигация также была скрыта, а обратная печать тоже работала?
Код виджета веб-просмотра приведен ниже:
Scaffold( AppBar: AppBar( фоновый цвет: AppColors.white, заголовок: StyledText.subtitle( AppLocalizations.of(context)!.webview, ), centerTitle: правда, ведущий: IconButton( onPressed: (() асинхронный { if (ожидайте webViewController!.canGoBack()) { webViewController!.goBack(); } еще { если (context.mounted) { контекст.поп(); } } }), значок: const Icon(Icons.arrow_back), ), ), тело: Центр( дочерний элемент: Столбец(дети: [ Расширенный( дочерний элемент: InAppWebView( ключ: вебвиевкэй, onLoadStart: (контроллер, URL) {}, onLoadStop: (контроллер, URL) { если (currentUrl == ApiConstants.success) { BlocProvider.of(контекст).add( УспешноеСобытие(), ); } else if (currentUrl == ApiConstants.failure) { BlocProvider.of(контекст).add( Событие Сбоя(), ); } еще { webViewController!.loadUrl( urlRequest: URLRequest (url: URL), ); } }, начальныйUrlRequest: URLRequest( URL: Uri.parse( состояние.URL, ), ), onWebViewCreated: (контроллер) { webViewController = контроллер; }, ), ), ]), ), ),
Я использую приведенный ниже код для перехода к виджету, который показывает веб-просмотр
context.goNamed( Маршруты.webRoute.имя, параметры пути: { Params.webUrl.key: state.WebUrl, Params.Source.key: Source.Options.name, }, ); поскольку я использую goRouter, goNamed удалит все обратные стопки и отобразит веб-просмотр в полноэкранном режиме.
Но проблема в том, что когда я нажимаю обратно, приложение закрывается, поскольку у него нет обратного стека.
Очевидно, что я могу использовать pushNamed вместо goNamed, и обратная печать будет работать нормально. Но у меня есть нижняя навигация на экране, которая в этом случае не скрывается.
Кто-нибудь знает какой-нибудь обходной путь в этой ситуации, чтобы моя нижняя навигация также была скрыта, а обратная печать тоже работала?
Код виджета веб-просмотра приведен ниже:
Scaffold( AppBar: AppBar( фоновый цвет: AppColors.white, заголовок: StyledText.subtitle( AppLocalizations.of(context)!.webview, ), centerTitle: правда, ведущий: IconButton( onPressed: (() асинхронный { if (ожидайте webViewController!.canGoBack()) { webViewController!.goBack(); } еще { если (context.mounted) { контекст.поп(); } } }), значок: const Icon(Icons.arrow_back), ), ), тело: Центр( дочерний элемент: Столбец(дети: [ Расширенный( дочерний элемент: InAppWebView( ключ: вебвиевкэй, onLoadStart: (контроллер, URL) {}, onLoadStop: (контроллер, URL) { если (currentUrl == ApiConstants.success) { BlocProvider.of(контекст).add( УспешноеСобытие(), ); } else if (currentUrl == ApiConstants.failure) { BlocProvider.of(контекст).add( Событие Сбоя(), ); } еще { webViewController!.loadUrl( urlRequest: URLRequest (url: URL), ); } }, начальныйUrlRequest: URLRequest( URL: Uri.parse( состояние.URL, ), ), onWebViewCreated: (контроллер) { webViewController = контроллер; }, ), ), ]), ), ),
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Проблема сборки Flutter InAppWebView: не удалось выполнить задачу «flutter_inappwebview»
Anonymous » » в форуме Android - 0 Ответы
- 24 Просмотры
-
Последнее сообщение Anonymous
-