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

jdzmm42g  于 2023-01-27  发布在  Flutter
关注(0)|答案(1)|浏览(112)

我想定义一个枚举(或类似的东西)来为seletedIndex的可能值命名,并定义目的地在(比如)Flutter NavigationBar中的顺序,这样我只需转到一个地方就可以更改目的地的顺序。
到目前为止,我所看到的例子总是需要在两个地方进行重新排序:一个是NavigationBar的目的地列表中的一个,它有一个隐式的、不可见的、未命名的索引,另一个是基于selectedIndex的开关或订阅,用于建立所选页面。这看起来像是一个bug磁铁。有没有什么方法可以设置它,以便我只在一个地方定义目的地的顺序,并将目的地列表绑定到正确的页面?
在我看来,NavigationDestination应该有一个属性来处理这个绑定或者一个“displayOrder”属性,但是我没有看到这个,如果没有更好的方法,我想我可以编写一个函数来构造基于对象的目的地列表(像枚举一样)将数字索引绑定到相应的页面视图,但这似乎是为常规导航栏任务创建的大量机械,特别是在现代的OO环境中--奇怪的是,在无开关编程世界中选择导航栏页面需要一个开关。然而,示例实现有开关,并且需要维护代码的两个独立区域来做一件事。义务新手免责声明如下...

djp7away

djp7away1#

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

相关问题