考虑一个PageView用法,其中一个PageView位于另一个PageView中:
PageView(
children: [
Container(color: Colors.red),
Column(
children: [
Text('Title'),
PageView(
children: [
Container(color: Colors.green),
Container(color: Colors.yellow),
],
),
],
)
],
);
这样的架构将允许我们在外部PageView和内部PageView之间转换。但是一旦我们到达了内在的PageView,我们就再也出不去了。
这里有一个gif展示它:
在这样的架构中,我们不能将两个PageView“合并”成一个,因为内部PageView不会填满屏幕
我们如何才能实现类似的结果,同时允许从两个PageView转换而不会卡住?
2条答案
按热度按时间von4xj4u1#
我有一个使用
NotificationListener
的解决方案,即用PageController
控制页面视图。用户实际上控制较低的PageView并将偏移量传递给较高的PageView。对于如何避免来自其他子部件的通知,我只能想到用另一个
NotificationListener
Package 它结果:
最后:
6mzjoqzu2#
一个简单的方法是使用Notification listener和animateToPage: