Widget createBottomSheetDialog(){
var _ipAddress = 'Unknown';
print("abc");
void _getIPAddress() async {
var url = 'https://httpbin.org/ip';
var httpClient = new HttpClient();
// 实际运行后点击按钮,根本不会打印如下2行日志,好像压根没运行到这里
print(url);
print("123");
String result;
try {
var request = await httpClient.getUrl(Uri.parse(url));
var response = await request.close();
if (response.statusCode == HttpStatus.OK) {
var json = await response.transform(utf8.decoder).join();
var data = jsonDecode(json);
result = data['origin'];
} else {
result =
'Error getting IP address:\nHttp status ${response.statusCode}';
}
} catch (exception) {
result = 'Failed getting IP address';
}
setState() {
_ipAddress = result;
}
print(result);
}
var btn = IconButton(
onPressed: _getIPAddress,
tooltip: 'Get IP',
icon: Icon(Icons.cake),
); // This trailing comma makes auto-formatting nicer for build methods.
return new Container(
color: Colors.blue,
child: new Column(
mainAxisSize: MainAxisSize.min,
crossAxisAlignment: CrossAxisAlignment.stretch,//填满交叉轴
children: <Widget>[
new Text(_ipAddress),
new Text("111111111111111111111111111111"),
btn,
],
),
);
}
你写法不对 onPressed: () =>_getIPAddress(),
一样的,还是进不去_getIPAddress函数
我在每一行都加了日志,发现居然是因为这一句卡住了,它之前的都OK,到它就卡住了
@春暖花又开 改用dio代替内置http就可以了,github上据说是dart的bug,dart的bug。。。
flutter_osc抄来的,可以参考一下:
new IconButton(
icon: new Icon(Icons.send),
onPressed: () {
// 回复楼主
showReplyBottomView(context, true);
},
)