【问题标题】:How Can I change index of PageView from a Widget inside one of the pages?如何从其中一个页面内的小部件更改 PageView 的索引?
【发布时间】:2023-02-04 00:29:05
【问题描述】:

我的最终目标是在 PageView 中将一个小部件从一个页面动画化到另一个页面,如果您能提供帮助,那将意义重大。但就目前而言,我什至无法通过点击小部件来更改页面,更不用说动画了。我尝试了与此 video 类似的方法,最初我能够使它工作,但直到我可以从 BottomNavigationBar 更改页面并通过滑动页面(我也可以正常进行)但是当我尝试应用它来使用小部件更改值,我做不到。它没有给出任何错误,但它什么也没做。我现在无法共享代码,因为我尝试了太多东西,现在它一团糟,如果代码是一个重要的要求,请提及我将重写它并附上。

注意:如果对于动画部分,您可以通过某种方式给我一个使用 Hero Widget 的方法,无论是否使用 Hero,这将是最好的,我正在尝试实现与 Hero 提供的动画相同的动画。只看到Hero配合图片使用,不知道其他widget是否可以。

我尝试了 StackOverflow answer 中提到的解决方案,它有效,但它在当前页面的顶部为我打开了一个新页面。这违背了我稍后要合并的目的,即为小部件设置动画。或者如果你能给我一个用那个方法解决它的方法也会有帮助。

以下是应用程序用户界面的一些屏幕截图,我在问题描述中提到了我想要实现的目标。

Home Widget Page (Source) "home_widget.dart" 包含这方面的代码。

Search Widget Page (Destination)“search_widget.dart”包含此代码。

这些是我的“home.dart”文件的 PageView 中的 2 个页面

我想点击“Home Widget Page”中的搜索栏,这将更改我的 BottomNavigationBar 和 PageView Controller 的索引,以便显示“Search Widget Page”。

编辑 1:-

我的项目的文件/类结构:-

lib
    screens
        home.dart    [code for the homepage contains the PageView and 
        the BottomNavBar]
    widgets
        home_widget.dart     [code for the First Page for PageView]
        search_widget.dart   [code for the Second Page for PageView]

BottomNavBar 和 PageView 连在一起,一起切换页面主页.dart文件,我想点击里面的“搜索栏”home_widget.dart和页面索引主页.dart应该更新到现在渲染search_widget.dart

【问题讨论】:

    标签: flutter dart flutter-animation


    【解决方案1】:

    您需要授予访问该页面的权限才能操纵您的页面和选项卡控制器.通常它们将作为参数传递。或者您可以将它们声明为 static for StatefulWidget(or Stateless) class NOT国家级

    【讨论】:

    • 嘿!我对 flutter 有点陌生。我已经用我的项目的文件结构更新了我的问题。请您用我的文件结构对其进行更多解释。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-06-30
    • 2019-09-03
    • 2020-07-15
    • 1970-01-01
    • 2019-07-02
    相关资源
    最近更新 更多