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