我希望在切换选项卡时不应执行StatelessWidget的构建方法。
我正在尝试学习flutter-provide,该语言可以与StatelessWidget结合使用来管理状态,但是其构建方法经常执行。
import 'package:flutter/material.dart';
class HomePage extends StatefulWidget {
@override
_HomePageState createState() => _HomePageState();
}
class _HomePageState extends State<HomePage> with SingleTickerProviderStateMixin{
List<Tab> tabList = [Tab(text:'one'), Tab(text:'two'),];
List<Widget> bodyList = [PageView("one"), PageView("two"),];
TabController mController;
@override
void initState() {
super.initState();
mController = TabController(
length: tabList.length,
vsync: this,
);
}
@override
void dispose() {
super.dispose();
mController.dispose();
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: TabBar(
controller: mController,
tabs:tabList,)
),
body:TabBarView(
controller: mController,
children: bodyList,
) ,
);
}
}
class PageView extends StatelessWidget {
final String title;
PageView(this.title);
@override
Widget build(BuildContext context) {
debugPrint("-- build $title --");
return Center(child: Container(child:Text(this.title)));
}
}
切换标签时
I / flutter(27336):-建立两个-
I / flutter(27336):-建立一个-
I / flutter(27336):-建立两个-
I / flutter(27336):-建立一个-
I / flutter(27336):-建立两个-
I / flutter(27336):-建立一个-
I / flutter(27336):-建立两个-
I / flutter(27336):-建立一个-
有什么办法可以解决它,就像实现了wantKeepAlive方法一样?
答案 0 :(得分:0)
我不是专家,但是我认为Flutter非常聪明,只有在发生实际更改时才重新绘制视图... 因此,在这种情况下,此构建调用是正常的,并且视图不会重新绘制。