【发布时间】:2019-07-11 08:43:19
【问题描述】:
我希望在我的flutter应用中切换appbar时不会重新加载webview,但我不知道该怎么做,很抱歉我是初学者。
这是我录制的gif:
我在 Google 上搜索过,但没有找到与此相关的答案。
//index.dart
import 'package:flutter/material.dart';
import 'navigation_tab.dart';
import '../home/home_page.dart';
import '../market/market_page.dart';
import '../my/my_page.dart';
class Index extends StatefulWidget {
@override
_IndexState createState() => new _IndexState();
}
class _IndexState extends State<Index> with TickerProviderStateMixin {
int _currentIndex = 0;
List<NavigationTab> _navigationTabs;
List<StatefulWidget> _pageList;
StatefulWidget _currentPage;
@override
void initState() {
super.initState();
_navigationTabs = <NavigationTab>[
new NavigationTab(icon: new Icon(Icons.account_balance), title: new Text("home"), vsync: this),
new NavigationTab(icon: new Icon(Icons.local_mall), title: new Text("market"), vsync: this),
new NavigationTab(icon: new Icon(Icons.account_box), title: new Text("my"), vsync: this),
];
_pageList = <StatefulWidget>[
new HomePage(),
new MarketPage(),
new MyPage(),
];
_currentPage = _pageList[_currentIndex];
}
@override
Widget build(BuildContext context) {
return new Scaffold(
body: _currentPage,
bottomNavigationBar: new BottomNavigationBar(
items: _navigationTabs.map((tab) => tab.item).toList(),
currentIndex: _currentIndex,
fixedColor: Colors.blue,
type: BottomNavigationBarType.fixed,
onTap: (int index) {
setState(() {
_currentIndex = index;
_currentPage = _pageList[index];
});
},
),
);
}
}
//home_page.dart
import 'package:flutter/material.dart';
class HomePage extends StatefulWidget {
@override
_HomePageState createState() => new _HomePageState();
}
class _HomePageState extends State<HomePage> {
@override
Widget build(BuildContext context) {
return new Scaffold(
appBar: PreferredSize(
child: new AppBar(
title: new Text("home"),
centerTitle: true,
),
preferredSize: Size.fromHeight(40)
),
body: new Center(
child: new Text("this is home page", style: TextStyle(fontSize: 36)),
),
);
}
}
//market_page.dart
import 'package:flutter/material.dart';
import 'package:flutter_webview_plugin/flutter_webview_plugin.dart';
class MarketPage extends StatefulWidget {
@override
_MarketPageState createState() => new _MarketPageState();
}
class _MarketPageState extends State<MarketPage> {
@override
Widget build(BuildContext context) {
return new Scaffold(
appBar: PreferredSize(
child: new AppBar(
title: new Text("market"),
centerTitle: true,
),
preferredSize: Size.fromHeight(40)
),
body: new WebviewScaffold(
url: "https://flutter.dev/",
withLocalStorage: true,
withJavascript: true
),
);
}
}
我想要webview页面keepalive,比如vue,应该怎么做?
【问题讨论】:
-
谢谢大家~ this answer helped me
标签: flutter