如何在Flutter中使用枚举来定义与目的地同步的selectedIndex的名称



我想定义一个枚举(或其他东西)来为seletedIndex的可能值命名,并定义目标的顺序,例如,在Flutter导航栏中,这样我只需要去一个地方更改目标的顺序。

到目前为止,我所看到的示例总是需要在两个地方重新排序:一个是在给定给NavigationBar的目的地列表中,该列表具有隐式的、不可见的、未命名的索引,另一个是基于selecteindex的开关或下标,以建立所选页面。这看起来像个吸虫磁铁。是否有办法设置它,以便我只在一个地方定义目的地的顺序,并将目的地列表绑定到正确的页面?在我看来,NavigationDestination应该有一个属性来处理这个绑定,或者一个"displayOrder"财产,但我看不出这个。如果没有更好的方法,我想我可以编写一个函数来基于一个对象(如枚举)来构造目标列表,该对象将数字索引绑定到相应的页面视图,但这似乎是为常规导航条任务创建的大量机器,特别是在现代OO上下文中——奇怪的是,在无开关编程世界中选择导航条页面需要一个开关。然而,示例实现具有切换,并且需要维护代码的两个独立区域来完成一件事。但是,我知道什么;必须的新手免责声明如下…

我认为我上面的问题措辞糟糕,这是基于无知和看到一些天真的例子,这些例子表明页面导航通常使用像selectedIndex这样的整数来完成。一旦我了解了Navigator类以及其他导航和列表相关的构建器,我就看到了Flutter提供的OO技术,它可以在不使用switch语句和整数索引的情况下将分层菜单放在一起。所以我对像我这样的人的回答是"我真的需要重新发明导航轮吗?"是先学习导航基础。

最新更新