是扑扑具有类似android“ addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_CLEAR_TASK)”的概念

时间:2018-06-25 11:23:20

标签: flutter

我有两页: 1-商店清单 2-过滤器屏幕

我想做

  1. 通过单击“商店列表”的过滤器图标=启动“过滤器屏幕”
  2. 通过单击过滤器屏幕的“应用”按钮=开始存储列表
  3. 按回我要转到主屏幕

在商店列表页面中,我想这样做:

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),
                  ),
                ),
              ),
            ),

1 个答案:

答案 0 :(得分:0)

您的问题的直接答案是“否”,Flutter对此没有任何机制,因为在幕后,Android上只有一个Activity

现在处理您描述的问题。它只需要简单地使用Navigatorhere初学者简介。

听起来您有三页:homeStoreListFilterScreen。您从主屏幕开始,进入商店列表,用户可能会过滤列表或返回主屏幕。

要进入FilterScreen,请将其添加到StoreList中的按钮:

onPressed: () {
  Navigator.push(
    context,
    MaterialPageRoute(builder: (context) => FilterList()),
  );
}

当您准备好返回StoreList时,只需使用Navigator.pop(context)