【发布时间】:2020-12-26 09:29:20
【问题描述】:
我有一个名为 Categories
class Categories { //Categories class
final String route;
final String categoryName;
final String categorySubTitle;
Categories({this.route, this.categoryName, this.categorySubTitle});
}
我创建了一个列表,其中放置了我创建的类的所有对象。
List<Categories> categories = [tarocchi, sogni]; //List of categories
final Categories tarocchi = Categories(
route: '/tarocchi',
categoryName: 'Tarocchi e Divinazione',
categorySubTitle: 'L’antica arte dei Tarocchi e della Divinazione',
);
final Categories sogni = Categories(
route: '/sogni',
categoryName: 'Interpretazione dei Sogni',
categorySubTitle: 'Significato e interpretazione dei Sogni',
);
列表中的每个项目都必须转到不同的屏幕。 在我生成的列表中,会有一个 onTap 函数会推送到不同的屏幕:
ListView.builder(
itemCount: categories.length,
itemBuilder: (context, index) {
return Column(
children: [
GestureDetector(
onTap: () => Navigator.push(
context,
MaterialPageRoute(
builder: (context) => Text(categories[index].categorySubTitle)
// here I call the new screens according with screens in the List
),
),
child: Card(
child: Text(categories[index].categoryName),
),
)
],
);
},
),
【问题讨论】:
-
我想请你分享一下屏幕设计以了解问题的全貌,但我更喜欢使用 Widget 而不是 Route,所以你可以将 Widgets 预设为片段。跨度>
-
nono 你不知道谁在谈论长度?我需要使用该类并为列表中的不同项目指定不同的屏幕...
-
categories 是一个 List
所以可以得到 .length @Agkab,最好只为所有类别创建一个屏幕,并简单地将在此屏幕上渲染所需的类别数据传递给类的构造函数。 -
@lordvidex 谢谢,他刚刚修改了。这不是相同的代码。代码已编辑。
标签: flutter listview dart navigation