我有两页: 1-商店清单 2-过滤器屏幕
我想做
在商店列表页面中,我想这样做:
GestureDetector(
onTap: () {
var route = MaterialPageRoute(
builder: (BuildContext context) => FilterScreen(areaList));
Navigator.of(context).push(route);
},
child: new Container(
margin: EdgeInsets.all(10.0),
child: new Image.asset(
"images/ic_filter.png",
height: 30.0,
width: 30.0)),
),
在“过滤器”屏幕中,我是这样做的:
new Expanded(
child: new MaterialButton(
onPressed: () {
String areaIds = "";
for(int i=0;i<areaList.length;i++){
if(areaList[i].isChecked){
areaIds += "${areaList[i].AreaMasterId},";
}
}
// Constants.areaMasterIds = areaIds;
// Constants.isLoadingAllStore = true;
var route = new MaterialPageRoute(builder: (BuildContext context) => new AllStoreTabScreen(false));
Navigator.of(context).pushReplacement(route);
},
color: Colors.myColor,
child: new Container(
padding: EdgeInsets.all(15.0),
child: new Text(
"APPLY",
style: Theme
.of(context)
.textTheme
.body1
.apply(color: Colors.white),
),
),
),
),
答案 0 :(得分:0)
您的问题的直接答案是“否”,Flutter对此没有任何机制,因为在幕后,Android上只有一个Activity
。
现在处理您描述的问题。它只需要简单地使用Navigator
。 here初学者简介。
听起来您有三页:home
,StoreList
和FilterScreen
。您从主屏幕开始,进入商店列表,用户可能会过滤列表或返回主屏幕。
要进入FilterScreen,请将其添加到StoreList中的按钮:
onPressed: () {
Navigator.push(
context,
MaterialPageRoute(builder: (context) => FilterList()),
);
}
当您准备好返回StoreList时,只需使用Navigator.pop(context)
。