Flutter如何将PlacePicker的onPlacePicked选中地址setState后更新到Text
实现步骤
- 首先在当前页面的State类中定义存储选中地址的状态变量
// 示例:放在_AddEventPageState类内部 String? _pickedAddress = 'Placeholder result';
- 替换ListTile的title固定文本,绑定状态变量,同时修改PlacePicker的回调逻辑
ListTile( leading: Icon(EvaIcons.pinOutline), contentPadding: const EdgeInsets.fromLTRB(5, 2, 5, 2), // 绑定状态变量,增加空值兜底 title: Text(_pickedAddress ?? 'Placeholder result'), onTap: () { Navigator.push( context, MaterialPageRoute(builder: (context) { return PlacePicker( apiKey: "API-KEY", initialPosition: AddEventPage.kInitialPosition, useCurrentLocation: true, selectInitialPosition: true, onPlacePicked: (result) { // 新增:将选中的地址赋值给状态变量 _pickedAddress = result.formattedAddress; setState(() {}); Navigator.of(context).pop(); }, ); }), ); })
补充说明
- 如果你需要存储选中位置的经纬度,可以额外定义两个double类型的状态变量,在回调中通过
result.geometry?.location.lat、result.geometry?.location.lng取值存储即可。 - 若formattedAddress为空,可以根据需求拼接
result.name、result.locality等字段生成自定义地址文本。
内容的提问来源于stack exchange,提问作者RoRo Studio
相关产品推荐
相关产品推荐

