Flutter google 在文本表单字段上放置自动完成功能

问题描述

我想要一个带有Flutter google Places自动完成功能的文本表单字段,当用户选择位置时,文本将转到文本表单字段。

我有这个代码用户点击文本表单字段,点击,打开搜索地址栏,但选择地址后文本没有显示在文本表单字段上。

代码

TextFormField(
                          decoration: textInputdecoration.copyWith(
                            hintText: "Enter Company Address",prefixIcon: Icon(Icons.map),),onTap: () async {
                            Prediction p = await PlacesAutocomplete.show(
                              context: context,radius: 10000000,types: [],strictbounds: false,apiKey: kGoogleApiKey,mode: Mode.overlay,language: "en",components: [Component(Component.country,"nz")],);
                          },validator: (val) =>
                              val.isEmpty ? 'Enter address' : null,onChanged: (val) async {
                            setState(() => address = val);
                          },

解决方法

首先,您必须创建一个 TextEditingController _place = TextEditingController()

然后,当结果从 API 返回时,例如 components[0], 您将此 String 值分配给 `controller。

_place.text = result。它甚至会在不使用 setState 的情况下更改 UI。