我有一个页面列表:
List<Widget> pagesList = [ PlayingPage(), SongsPage(), RadioPage(), PlaylistsPage(), FavoritesPage(), SettingsPage(), ];
它们在另一个dart文件中,我访问它们的方式如下:
pagesList[index]
但我无法访问他们的属性,比如:
pagesList[index].pageName
我该怎么做?
cwtwac6a1#
您可以使用Map来实现这一点。
final Map<String, Widget> pages = { 'Playing': PlayingPage(), 'Songs': SongsPage(), 'Radio': RadioPage(), 'Playlists': PlaylistsPage(), 'Favorites': FavoritesPage(), 'Settings': SettingsPage(), };
您可以使用pages.keys作为页面名称(如果您喜欢列表,则使用.toList())。要使用页面,您可以使用pages['Playing']!(首选空检查)。就像您可以在这里使用的int index一样pageKey = pages.keys.elementAt(index)你也可以玩扩展如果你喜欢
pages.keys
.toList()
pages['Playing']!
int index
pageKey = pages.keys.elementAt(index)
extension PageName on Widget { get pageName { if (this is PlayingPage) return 'Playing'; if (this is SongsPage) return 'Songs'; if (this is RadioPage) return 'Radio'; .... else return runtimeType.toString(); } }
1条答案
按热度按时间cwtwac6a1#
您可以使用Map来实现这一点。
您可以使用
pages.keys
作为页面名称(如果您喜欢列表,则使用.toList()
)。要使用页面,您可以使用pages['Playing']!
(首选空检查)。就像您可以在这里使用的
int index
一样pageKey = pages.keys.elementAt(index)
你也可以玩扩展如果你喜欢