это трепетание есть понятие, как Android "addFlags (Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_CLEAR_TASK)" - PullRequest
0 голосов
/ 25 июня 2018

У меня есть две страницы: 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 голосов
/ 25 июня 2018

Прямой ответ на ваш вопрос - нет, у Флаттера нет механизма для этого, потому что под капотом есть только один Activity на Android.

Теперь разберемся с проблемой, которую вы описываете. Это просто требует простого использования Navigator. Вступление для начинающих здесь .

Похоже, у вас есть три страницы: home, StoreList и FilterScreen. Вы запускаете на главном экране, переходите к списку магазинов, пользователь может отфильтровать список или вернуться на начальный экран.

Чтобы попасть на FilterScreen, добавьте это к кнопке в StoreList:

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

Когда вы будете готовы вернуться в StoreList, просто используйте Navigator.pop(context).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...