我需要一些白癡證明 setState 幫助...所以我有一個位置選擇器(谷歌地圖),我希望選擇的位置在你看到“占位符結果”的地方顯示為文本。任何人都知道如何解決這個問題?
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();
},
);
}),
);
})
uj5u.com熱心網友回復:
你需要有內部的一個變數State的StatefulWidget。我在ResultTile這里用作示例:
class ResultTile extends StatefulWidget {
@override
_ResultTileState createState() => _ResultTileState();
}
class _ResultTileState extends State<ResultTile> {
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();
},
);
}),
);
},
);
}
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/350642.html
