在用户点按底部导航栏的时候,我希望可以切换显示不同的小部件。现在这个底部导航栏用的是我们自己创建的 AppBottomNavigationBar 小部件,这个小部件里用了 BottomNavigationBar 小部件,点按它里面的导航项目的时候,会执行它的 onTap 指定的处理方法,方法里接收的参数的值就是当前被点的那个导航项目的索引号。
在 App 小部件里,我们用了一个 IndexedStack 小部件,它可以根据一个索引值来显示对应的小部件。它里面的小部件的索引号,跟底部导航栏项目的索引号是一致的,所以我们可以根据这个底部导航栏当前的索引值,来决定到底要在界面上显示在 IndexedStack 里面的哪一个小部件。
需要一种方法来处理这两个小部件的状态,点按了底部导航项目,会改变底部导航栏的当前索引值,在 IndexedStack 小部件里可以利用底部导航栏上的这个当前的索引值,用它决定到底要让哪个小部件显示出来。