dependencies:
dio: ^3.0.0
void getHttp() async { try { String url = "https://api.sunofbeach.net/shop/discovery/9649/${page}"; if (hasmore) { Response re = await new Dio().get(url); print("==${re.data["data"][0]['title']}"); setState(() { //datas=re.data["data"]; datas.addAll(re.data["data"]); }); if (re.data["data"].length < 50) { setState(() { hasmore = false; }); } else { page++; } print("=当前页码数=${page}"); // } else { // } } catch (e) { page--; } }
return Scaffold( appBar: AppBar( // Here we take the value from the MyHomePage object that was created by // the App.build method, and use it to set our appbar title. title: Text(widget.title), ), body: datas.length > 0 ? RefreshIndicator( onRefresh: _onRefresh, child: ListView.builder( controller: controller, itemCount: datas.length, itemBuilder: (BuildContext context, index) { if (index == datas.length - 1) { return Column( children: <Widget>[ ListTile( title: Text(datas[index]['title']), ), hasmore ? Text("我是最底部") : Text("我是有底线的") ], ); } else { return ListTile( title: Text(datas[index]['title']), ); } }), ) : Text("数是多少"), // This trailing comma makes auto-formatting nicer for build methods. );
Future<void> _onRefresh() async { await Future.delayed(Duration(milliseconds: 2000), () { getHttp(); }); }