问题标签 [flutter-pageview]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
404 浏览

flutter - Flutter - 在 PageView 上使用 Dismissible 会创建丑陋的动画

用下面的示例代码,就是得到一个很丑陋的动画。我什至会说,这根本不是动画。调用 setstate 后,下一页才会出现。

如何使用 PageView 创建平滑的删除动画?如果无法通过 PageView 实现,是否还有其他具有“快照卡”功能的替代方案?

这是我的代码:

0 投票
1 回答
429 浏览

flutter - Flutter Setstate 多次调用(GestureDetector & PageView)

基本上我有一个带有元素的滑动屏幕,用户可以在其中向左或向右滑动。当用户滑动时,我调用了一些函数。我GestureDetector用于手势识别和PageView.Custom我的物品。可能ListView.Custom也有效,但它不能解决我的问题。

我需要一个PageController,因为我必须以编程方式控制导航。而且我认为这PageController可能是我的函数被多次调用的问题背后的原因。如何解决?有人知道为什么setstate经常被调用以及如何防止它吗?

我为您提供了一个完整的工作示例(缩小版),其中包含向右滑动操作的打印,您可以在其中看到它的beeing 被多次调用。

提前致谢!

0 投票
1 回答
362 浏览

flutter - PageView 中的 InteractiveViewer

我正在创建一个带有图像列表的 PageView,并且我想将 interactiveViewer 添加到每个图像,以便可以调整其大小以查看详细信息。

这是我写的:

但是这两个滚动条似乎相互竞争,行为混乱。

例如,一旦图像被放大,滚动手势也会触发页面移动,这似乎是因为视口没有随图像本身放大。

有什么解决办法吗?谢谢楼上的任何人。

0 投票
0 回答
228 浏览

flutter - 如何在 Flutter 中使用 GestureRecognizer 实现 PageView 的滑动手势?

我正在尝试从 Instagram 重新创建 MediaPicker。

此屏幕的当前结构如下所示:

最初的问题是,每当我在裁剪视图中拖动时,都会触发页面视图的滑动手势,这不是我想要的。

所以我的想法是禁用标准的滚动方式,NeverScrollableScrollPhysics()然后只MediaGrid()用 a包裹,GestureRecognizer()这样我就可以在 PageViews 的帮助下实现相同的滑动动画,pageController.jumpTo()但只能在MediaGrid()

但是我的实现似乎很糟糕,因为页面浏览量像这样结结巴巴

https://imgur.com/a/EzabR7w

我如何平滑口吃,或者有更好的方法来实现这一点?

0 投票
1 回答
1551 浏览

flutter - Flutter:如何在页面转换时为背景颜色设置动画

我想在颤动的两个页面的背景颜色之间制作动画。我说的是页面转换,但不是转换整个页面,我只想更改新页面的背景颜色(从前一页的 bg 颜色到新颜色),而其余的前景内容淡入(或任何其他类型的过渡)。

如果您需要更多说明,我想要一些类似Hero过渡的东西,但要使用页面的背景颜色。

背景颜色不必只是某个容器的颜色属性。

编辑:为了轻松回答,假设我的页面可以通过为其构造函数指定颜色来调用。所以页面如下所示,

我的方法应该是什么?我应该创建类似自定义过渡的东西吗?在这种情况下,我怎样才能为背景颜色设置动画?

0 投票
1 回答
186 浏览

flutter - 如何从父小部件访问和更改另一个小部件 pageControllers 索引?

我正在尝试将 PageView 嵌套在 PageView 中并访问第二个 PageView 的控制器。

父级的结构如下所示:

这是底部导航栏:

如您所见,父母 pageView 只有 2 个孩子,但底部导航栏有 3 个项目。

我已经将我想要的功能编写为伪onTap()代码bottomNavigationBar

我试过的

我试图使CameraScreens pageControllers 索引成为必需的属性,以便我可以使用所需的索引重建它,但这不起作用。

我也尝试实现通知,但这也不起作用。可能是因为接收器必须处于活动状态?

是否有捷径可寻?

0 投票
1 回答
84 浏览

flutter - 如何从另一个屏幕使用颤振_pageControler.jumpToPage()?

假设我的项目中有 4 个文件。

导航栏第一页,第二第三页

导航栏中,我有一个侧边抽屉,其中包含页面浏览导航firstPage secondPage 和 thirdPage 的页面浏览

如何PageController.jumpToPage()从其他页面中的按钮 onTab 功能访问导航栏?

0 投票
1 回答
646 浏览

flutter - Flutter Pageview 在方向变化时失去索引

最近也有类似的问题,不过已经在 GitHub 上解决并关闭了。由于我是新手,我可能会在这里遗漏一些东西。方向更改后,页面索引恢复为零,但所选的 BottomNavigationBarItem 保持原样。此处显示页面“一”,但在旋转设备之前选择了选项卡“四” 截屏

0 投票
0 回答
486 浏览

flutter - 如何在 Stack 中定位 PageView?

我在 a 中有一个PageView和一个按钮StackPageView在底部Stack)。我在bottomCenterusingStackalignment属性中有按钮。

我想定位PageView内部Stack,使其显示在按钮上方(如垂直上方,而不是上方Stack)。但是,您似乎无法使用Positioned带有 a 的小部件PageView来完成此操作。

我正在使用 a Stack,因为它PageView包含一个使用 的可缩放小部件InteractiveViewer,并且我希望在放大此小部件时按钮保持在顶部。

根据您是从头开始运行应用程序、执行 Flutter 热重启还是执行 Flutter 热重载,使用小部件包装 会产生不同的PageView错误。Positioned(但是,如果您不指定任何其他Positioned参数,即bottom,left等,则不会出现错误。)

热重载时发生的另一个问题是它确实对PageView. 它向上移动,但幅度超过bottom参数中指定的数量。它还切断了很多宽度(但不会给出任何溢出错误)。您可以在包含的第二张图片中看到这一点。

如果您指定bottom参数然后进行热重载,则会出现以下错误:

如果您指定bottom参数,然后从头开始停止并运行应用程序或进行热重启,则会出现以下错误:

错误一:

错误 2(此错误的几种变体):

这是一个显示我的问题的简单应用程序:

bottom没有指定参数的样子。看到按钮覆盖了部分PageView,我不希望发生这种情况,这就是我要解决的问题:

底部未指定

bottom指定参数然后进行热重载时的样子。您可以看到它向上移动的幅度超过了 指定的bottom幅度,并且它切断了很多宽度而不会出现溢出错误:

底部指定然后热重载

bottom当您指定参数然后热启动或停止并从头开始运行应用程序时的样子。和PageView按钮不见了:

底部指定然后热重启或停止并从头开始运行

0 投票
1 回答
27 浏览

flutter - PageView 以意外的顺序重建主小部件

问题:我有一个包含 3 个页面的 PageView:P1、P2、P3。当我在 P3(或 P2)上打开一个附加页面然后关闭该附加页面时,PageView 会重建但将 P3 作为第一页。新的损坏页面顺序是 P3、P2、P3。

如果我排除if (_page != 0 && position == 0) { return pageListTest[_page];}P1 而不是 P3 将显示,因为position == 0这是合乎逻辑的,但也不是所需的行为,因为 P3 应该再次显示。

这是我使用的代码:

有任何想法吗?谢谢 :)