我有3頁,第一個是home_page,page1和page2將home_page具有GridView這是從中檢索資料List其中有2個元素,所以我GridView現在會顯示如下影像2項

我讓InkWell()我的Card()小部件可以點擊。
因此,當我單擊 page1 項時,page1 如果單擊 page2 項,我也想導航到螢屏,我想導航到另一個螢屏,即page2螢屏。我用過onTap(){}但總是去page1
我的InkWell方法:
InkWell gridItem(Category category) {
return InkWell(
child: Card(
shape:
RoundedRectangleBorder(borderRadius: BorderRadius.circular(10)),
child: Column(
mainAxisSize: MainAxisSize.min,
mainAxisAlignment: MainAxisAlignment.center,
children: [
Container(
//color: Colors.green,
width: 100,
height: 100,
padding: const EdgeInsets.all(8),
child: Image.asset(category.image),
),
Text(
category.name,
style: const TextStyle(fontSize: 18),
),
],
),
),
onTap: () {
Navigator.push(context, MaterialPageRoute(builder: (context) {
return const Page1();
}));
},
);
}
我是如何實作這個目標的,謝謝。
編輯:
class Category {
late String name;
late String image;
Category({required this.name, required this.image});
}
uj5u.com熱心網友回復:
您只需要確定page與類別相關的內容。
因此,不要直接將頁面設定為始終Page1()像這樣:
onTap: () {
Navigator.push(context, MaterialPageRoute(builder: (context) {
return const Page1();
}));
},
把它改成這樣:
onTap: () {
_goToPage(category.id); // or category number
// or anything to differentiate each item of category
},
用_goToPage(int number)方法:
void _goToPage(int number) {
Widget page;
// You can also use if else here.
switch(number) {
case 0:
page = Page1();
break;
case 1:
page = Page2();
break;
default:
page = Page1(); // default item when no matching category found
}
Navigator.push(context, MaterialPageRoute(builder: (context) {
return page;
}));
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/364080.html
上一篇:Flutter右側浮動操作欄
下一篇:Flutter錯誤:引數型別'DocumentSnapshot<Object?>?不能分配給引數'DocumentSnapshot<Object?>
