0
 List<Event> events = [];
  int currentPage = 1;
  Dio dio = Dio();

  void getEvents() async {
    try {
      var response =
          await Dio().get('http://52.90.175.175/api/events/get?page=$currentPage');
      var data = response.data["data"]["data"] as List;
      setState(() {
        events = data.map((i) => Event.fromJson(i)).toList();
      });

      print(events);
    } catch (e) {
      print(e);
    }
  }   

This is how I fetch my events and 10 events per page is loading and here is my json response of API

enter image description here

my full json

Next page URL and next page decide by API and I want to know how to pagination with infinite_scroll_pagination for my widget

 ListView.builder(
            itemCount: events.length,
            itemBuilder: (context, index) {
              return ListTile(
                contentPadding: const EdgeInsets.all(20),
                title: Text(events[index].title),
                subtitle: Column(
                  crossAxisAlignment: CrossAxisAlignment.start,
                  children: [
                    Text(events[index].description),
                    Text("${events[index].start} - ${events[index].end}"),
                  ],
                ),
              );
            },
          ),
Tobias Knauss
  • 3,361
  • 1
  • 21
  • 45
Afthal Ad
  • 91
  • 1
  • 7

1 Answers1

0

no need to add any packages, add this code to initState

controller = new ScrollController()..addListener(_scrollListener);

and create this method.

_scrollListener() {
    print(controller.position.extentAfter);
    if (scrollController.position.maxScrollExtent == scrollController.offset) {
      currentPage++;
      getEvents();
    }
  }
MANISH DAYMA
  • 1,126
  • 3
  • 18