📶

FlutterのBottomNavigationBarでWebViewが複数作れない問題

株式会社アクトビ

Discussion

DiegoDiego

試したことはないですが、
以下の人は、WebViewWidgetに一意なkeyを与えるとちゃんと動いた的なこと言ってます。
https://stackoverflow.com/questions/78310404/using-multiple-instances-of-flutter-webview-inside-a-tabview-not-working-as-expe

DiegoDiego

controllerはタブ毎に生成されていますでしょうか?
WebViewというより、Controllerが変わってないからWebViewが切り替わらないのかなーとか思いました。。

また、以下のライブラリや
go_routerのStatefulShellRouteなど使うと、ios風が作れると思います!
https://pub.dev/packages/persistent_bottom_nav_bar
(個人的には、go_routerを使うほうが良いかなと思います)

オオハシ | ACTBE Inc.オオハシ | ACTBE Inc.

ありがとうございます!
ちょっと前のコードだったのでgo_routerみたいなものは使ってなかったのですが、Controllerを各タブごとに作るというのはしてなかったですね・・・。
WebViewに対して1対1だと思ってたので、WebViewが1つなのがそもそもの問題?

https://zenn.dev/flutteruniv_dev/articles/stateful_shell_route
ios風BottomNavigation書かれてる方いました!参考にいたします!

DiegoDiego

タブ毎にWebViewとcontrollerを作るとAndroid風になるかなと思います。

強いて言うなら、
タブバーで取得したindexから、urlを取得するのではなく、widgetを取ってきて描画した方が良いかなと思います!
そのwidgetの中でWebViewとcontroller作ると上手くいくのかなーと思います。