我想要一个带有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。