Flutter Getx: Implementing Infinite Scrolling with API Integration

Raviya Technical
Flutter Framework
Published in
2 min readNov 10, 2024

--

Flutter GetX: Implementing Infinite Scrolling with API Integration

We create binding file name of home_binding.dart and connect with homeController

import 'package:get/get.dart';

import 'home_controller.dart';

class HomeBinding extends Bindings {
@override
void dependencies() {
Get.lazyPut<HomeController>(
() => HomeController(),
);
}
}

Below controller of pagination logic current page and error handing in ScrollController

import 'dart:convert';
import 'package:flutter/material.dart';
import 'package:get/get.dart';
import 'package:http/http.dart' as http;

import 'home_model.dart';

class HomeController extends GetxController {
final ScrollController scrollController = ScrollController();
final records = <dynamic>[].obs;
var currentPage = 1.obs;
var isLoading = false.obs;
var errorMessage = ''.obs;

@override
void onInit() {
super.onInit();
scrollController.addListener(_loadMore);
fetchData(currentPage.value);
}

@override
void onClose() {
scrollController.dispose();
super.onClose();
}

Future<void> fetchData(int page) async {
isLoading.value = true;
errorMessage.value = '';
const int limit = 15;
int offset = (page - 1) * limit;
final response = await http.get(Uri.parse(
'https://api.escuelajs.co/api/v1/products?offset=$offset&limit=$limit'));

try {…

--

--

No responses yet