Флаттер вызывает список при нажатии кнопки и закрывает указанный список после выбора опции - PullRequest
0 голосов
/ 25 марта 2019

Я создаю приложение для здания, которое может перемещаться по пользователю, один из способов, которым я это делаю, - это использовать план этажа здания, и я хочу нарисовать путь между узлами в этом плане этажа, чтобы создать маршрут. Пользователь входит туда, где он хочет быть, и затем алгоритм поиска маршрута выводит путь. Я хочу построить этот путь, предлагая пользователю выбрать исходный узел и целевой узел из двух отдельных списков. Я хочу, чтобы он нажал кнопку на экране просмотра карты и есть список с этими узлами, но, что бы я ни пытался, список не будет отображаться.

Я пытался использовать setState и возвращал ListView, но, похоже, именно в этом он терпит неудачу, так как у меня есть операторы print, чтобы помочь проверить, где в коде, который я достиг, я не знаю если это поисковые термины, которые я использую, но ничего, что я нашел до сих пор, похоже, не относится к этому виду использования. Это похоже на то, что я хочу, но это просто список, который уже отображается и обновляется.

  Widget build(BuildContext context) {
    //currently inside of a scaffold
        bottomNavigationBar: BottomAppBar(
            child: new Row(
          mainAxisSize: MainAxisSize.max,
          mainAxisAlignment: MainAxisAlignment.spaceBetween,
          children: <Widget>[
            IconButton(
              icon: Icon(Icons.trip_origin),
              onPressed: () {
                setState(() {
                  _sourceList();
                });
               },
             ),
           ],
          )),
    //extra code as part of scaffold
  }

  Widget _sourceList() {
    print("working1"); //this prints
    return ListView.builder(
        padding: const EdgeInsets.all(10.0),
        itemBuilder: (context, i) {
          print("working2"); //this does not
          return _buildRow();
        });
  }

  Widget _buildRow() {
    return new ListTile(title: Text(a.name));
  }

Таким образом, я просто хочу, чтобы список отображался, когда пользователь нажимает кнопку, а затем этот список исчезал после выбора. Фактический результат - я могу нажать кнопку, и ничего не отображается, я только достигаю рабочего1 в коде не работает2.

...