You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Flutter如何将PlacePicker的onPlacePicked选中地址setState后更新到Text

实现步骤

  1. 首先在当前页面的State类中定义存储选中地址的状态变量
// 示例:放在_AddEventPageState类内部
String? _pickedAddress = 'Placeholder result';
  1. 替换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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 02:15:05