如何在IndexedStack中重建页面

时间:2020-07-17 14:53:45

标签: flutter

我有两页,您可以在其中查看一堆电影,您可以在其中欣赏电影的顶部,然后移至下一页, PAGE A ,第二页在列表 PAGE B 中展示喜欢的电影的人。

每次我喜欢或不喜欢电影时,都可以转到 PAGE B ,我应该能够看到自己喜欢的电影,但是因为我使用的是IndexedStack , PAGE B 不会重建,因此不会显示更新后的列表。

当我重新输入 PAGE B 时,是否可以重新构建?

这就是我所拥有的:

class HomePage extends StatefulWidget {
  //
  static String id = 'home';
  //
  @override
  _HomePageState createState() => _HomePageState();
}

class _HomePageState extends State<HomePage> {
  //
  List<Widget> _pages = [MovieStackPage(), LikedMoviesPage()];
  int pageIndex = 0;
  //
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      backgroundColor: Colors.white,
      body: SafeArea(
        child: IndexedStack(
          index: pageIndex,
          children: _pages,
        ),
      ),
      bottomNavigationBar: AnimatedBottomNavigationBar(
        icons: [...],
        iconSize: 25,
        elevation: 50,
        activeIndex: pageIndex,
        leftCornerRadius: 32,
        rightCornerRadius: 32,
        activeColor: User.color,
        inactiveColor: kAppIconGray,
        splashColor: User.color.withOpacity(.3),
        onTap: (index) => setState(() => pageIndex = index),
      ),
    );
  }
}

我正在为BottomNavBar使用一个软件包,但这应该不是问题。

1 个答案:

答案 0 :(得分:0)

从页面列表中删除该页面并在同一索引处重新添加:

onTap: (index) {
      _pages.removeAt(1);
      _pages.insert(1, LikedMoviesPage());
      setState(() => pageIndex = index);
},