所以我有了标签栏,我在TabBarView
中设置了可重用的标签或自定义小部件TabBarPage
。
我的问题是我的方法像下面的代码会影响糟糕的性能,或者它是一样的,如果我不做任何自定义小部件内自定义小部件?
TabBarView(
children: [
TabBarPage(
child: NowPlaying(),
),
TabBarPage(
child: Upcoming(),
),
TabBarPage(
child: Popular(),
),
],
),
在TabBarPage中,我有final Widget child;
,填充了NowPlaying, Upcoming,或Popular,这三个子元素有相同的代码,但不同的提供者
Container(
padding: EdgeInsets.fromLTRB(18.w, 0, 18.w, 0),
child: SingleChildScrollView(
child: this.widget.child,
),
),
和现在播放,即将到来,或流行我有我的另外两个自定义小部件(TabLoading, TabContent)
class NowPlaying extends StatelessWidget {
const NowPlaying({Key? key}) : super(key: key);
@override
Widget build(BuildContext context) {
return Consumer<NowPlayingProvider>(
builder: (context, data, child) {
if (data.isLoading == true) return TabLoading();
return TabContent(data: data.nowPlaying);
},
);
}
}
显然不,在另一个自定义小部件中创建多个自定义无状态小部件对性能没有影响,请执行