【发布时间】:2021-10-23 12:48:25
【问题描述】:
我有 listview,这是预期的行为:
-
当我点击第一个列表视图项目时,我希望它导航到屏幕“A”,
-
当我点击第二个列表视图项目时,我希望它导航到屏幕“C”,
-
当我点击第三个列表视图项目时,我希望它导航到屏幕“T”,
-
等等……
简而言之,当我单击每个列表视图项时,我希望它导航到不同的屏幕,因为我有不同的屏幕和不同的数据。
重要提示: “导航到单个屏幕”无处不在,但我没有获得有关如何导航到不同屏幕的帮助。在 youtube 和 google 文章上,每个人都以相同的方式上传,因为他们在一个屏幕上拥有相同类型的数据。就我而言,不同之处在于我有多个屏幕,每个屏幕都有自己独特的数据。
代码:
class _DashboardScreenState extends State<DashboardScreen> {
final CategoriesScroller categoriesScroller = CategoriesScroller();
ScrollController controller = ScrollController();
bool closeTopContainer = false;
double topContainer = 0;
List<Widget> itemsData = [];
void getPostsData() {
List<dynamic> responseList = FOOD_DATA;
List<Widget> listItems = [];
responseList.forEach((post) {
listItems.add(GestureDetector(
onTap: () {
_navigateAndDisplaySelection(context);
},
child: Container(
height: 150,
margin: const EdgeInsets.symmetric(horizontal: 20, vertical: 10),
decoration: BoxDecoration(borderRadius: BorderRadius.all(Radius.circular(20.0)), color: Colors.white, boxShadow: [
BoxShadow(color: Colors.black.withAlpha(100), blurRadius: 10.0),
]),
child: Padding(
padding: const EdgeInsets.symmetric(horizontal: 20.0, vertical: 10),
child: Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: <Widget>[
Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: <Widget>[
Text(
post["name"],
style: const TextStyle(fontSize: 20, fontWeight: FontWeight.bold),
),
SizedBox(
height: 10,
)
],
),
Image.asset(
"assets/images/${post["image"]}",
height: double.infinity,
)
],
),
)),));
});
setState(() {
itemsData = listItems;
});
}
【问题讨论】:
-
请分享您的代码
-
编辑了我的问题...上传的代码
-
这是一张图片...i.stack.imgur.com/XRTl1.png