Установите состояние onPlacePicked для трепетания текста

#flutter #dart

Вопрос:

Мне нужна помощь в наборе идиотских доказательств… Итак, у меня есть средство выбора местоположения (Карты Google), и я хочу, чтобы выбранное местоположение отображалось в виде текста в том месте, где вы видите «Результат заполнения». У кого-нибудь есть идеи, как к этому подойти?

 ListTile(  leading: Icon(EvaIcons.pinOutline),  contentPadding: const EdgeInsets.fromLTRB(5, 2, 5, 2),  title: Text('Placeholder result'),  onTap: () {  Navigator.push(  context,  MaterialPageRoute(builder: (context) {  return PlacePicker(  apiKey: "API-KEY",  initialPosition: AddEventPage.kInitialPosition,  useCurrentLocation: true,  selectInitialPosition: true,  onPlacePicked: (result) {  setState(() {});  Navigator.of(context).pop();  },  );  }),  );  })  

Ответ №1:

Вам понадобится переменная в пределах State a StatefulWidget . Я использовал ResultTile в качестве примера здесь:

 class ResultTile extends StatefulWidget {  @override  _ResultTileState createState() =gt; _ResultTileState(); }  class _ResultTileState extends Statelt;ResultTilegt; {  String _result = ''; // initially the result is an empty string   @override  Widget build(BuildContext context) {  ListTile(  leading: Icon(EvaIcons.pinOutline),  contentPadding: const EdgeInsets.fromLTRB(5, 2, 5, 2),  title: Text(_result), // display the result  onTap: () {  Navigator.push(  context,  MaterialPageRoute(builder: (context) {  return PlacePicker(  apiKey: "API-KEY",  initialPosition: AddEventPage.kInitialPosition,  useCurrentLocation: true,  selectInitialPosition: true,  onPlacePicked: (result) {  setState(() {  _result = result  .getText(); // get the String from the result object, if it's not a String already.  });  Navigator.of(context).pop();  },  );  }),  );  },  );  } }  

Комментарии:

1. Большое спасибо! У меня есть еще один вопрос по этому поводу, если у вас есть время 🙂 Знаете ли вы, как я могу использовать заполнитель типа «Выберите местоположение», который будет отображаться до того, как местоположение будет выбрано? Теперь это, конечно, пустое место.

2. Вы можете просто изначально установить «Выбрать местоположение», это не обязательно должна быть пустая строка. Я просто выбрал его в качестве примера