Flutter 如何仅在滑动动画结束后渲染页面视图页面
在我的应用程序中,我使用了很多要显示的重页面、要渲染的图像以及更多内容,滑动时发生的情况是,当我的页面在滑动中渲染时,我的滑动动画将错开,我希望最小化这种影响 我希望页面在默认情况下显示某个小部件(最好是带有bg颜色的单个容器,或微光,或我可以选择的任何占位符),然后当滑动动画完成时,将显示正在后台计算的数据。这样,我就不必在刷卡时看到janky动画Flutter 如何仅在滑动动画结束后渲染页面视图页面,flutter,dart,pageviews,Flutter,Dart,Pageviews,在我的应用程序中,我使用了很多要显示的重页面、要渲染的图像以及更多内容,滑动时发生的情况是,当我的页面在滑动中渲染时,我的滑动动画将错开,我希望最小化这种影响 我希望页面在默认情况下显示某个小部件(最好是带有bg颜色的单个容器,或微光,或我可以选择的任何占位符),然后当滑动动画完成时,将显示正在后台计算的数据。这样,我就不必在刷卡时看到janky动画 除了必须手动使用streambuilders来侦听pageView控制器外,还有其他方法可以做到这一点吗?为页面添加一个延迟,该延迟等于pageV
除了必须手动使用streambuilders来侦听pageView控制器外,还有其他方法可以做到这一点吗?为页面添加一个延迟,该延迟等于pageView的动画持续时间 1.创建一个变量
final duration = Duration(milliseconds: 600);
2.将延迟添加到页面()
3.设置动画到不同的页面
_pageController.animateToPage(
1,
duration: duration,
curve: Curves.easeInOut,
);
您可以尝试此操作,页面视图外部屏幕将被预加载~
[已编辑]
或者,如果只在index==onchangedIndex时放置上下文,比如
int _currentIndex = 0;
PageView.builder(
onPageChanged: (index){
//Even you can use here Future.delay to delay a second after onPageChanged, if loading your content is too quick
setState(() {
_currentIndex = index;
});
},
itemBuilder: (context, index){
return _currentIndex == index ? //your content : Container(/*with background color*/);
}
如果我没有手动控制滑动,这不会有多大帮助。此外,我无法获取或设置PageView控制器上的滑动速度。您可以共享PageView的范围吗?请共享PageView的代码!我确实尝试过这个,但它确实对我的应用程序的性能和“Jankines”产生了不良影响,并用新方法进行了更新
int _currentIndex = 0;
PageView.builder(
onPageChanged: (index){
//Even you can use here Future.delay to delay a second after onPageChanged, if loading your content is too quick
setState(() {
_currentIndex = index;
});
},
itemBuilder: (context, index){
return _currentIndex == index ? //your content : Container(/*with background color*/);
}