Flutter Infinite ListView

How to implement infinite ListView in Flutter

Yudi Setiawan
Nusanet Developers
6 min readJan 22, 2022

--

Pengenalan

Sebuah aplikasi pada umumnya pasti terdapat fitur untuk menampilkan sekumpulan data. Data-data tersebut biasanya ditampilkan sesuai dengan platform-nya masing-masing. Kalau di desktop/web umumnya menggunakan table pagination.

https://mdbootstrap.com/docs/b4/jquery/tables/pagination/

Lalu, untuk platform mobile biasanya kita menampilkan datanya dalam bentuk list.

https://dribbble.com/shots/10181589-Order-List-and-Track-Orders-Ui-Design

Untuk mobile, implementasi pagination-nya kita bisa menggunakan teknik Infinite Scrolling atau Infinite ListView. Jadi, konsepnya itu adalah app-nya menampilkan list datanya dalam bentuk ListView lalu, ketika berada di paling bawah maka, app-nya akan memuat lagi ke API atau database untuk menampilkan data berikutnya.

Cara Pembuatan

Buat Projek

Langkah pertamanya, silakan kita buat projek baru dengan nama flutter-swapi.

Buat projek baru

Atur pubspec.yaml

Untuk membuatnya ada beberapa plugin yang perlu kita tambahkan kedalam projek kita. Silakan buka file pubspec.yaml dan tambahkan beberapa plugin berikut.

  1. dio
  2. json_annotation
  3. json_serializable
  4. build_runner

Catatan: Untuk versinya silakan pakai yang versi terbaru ya.

Buat Class Model

Langkah berikutnya, kita perlu membuat class model dari respon endpoint yang bakalan kita pakai. Berikut adalah endpoint yang akan kita pakai.

Dan berikut adalah format respon dari endpoint tersebut.

Nah, karena kita sudah tahu format respon JSON-nya. Maka, sekarang kita buat class modelnya. Caranya silakan buat file baru dengan nama people_response.dart. Dan isikan dengan kode berikut.

Untuk menghilangkan tanda error-nya. Kita perlu jalankan build runner-nya untuk membuat file generator-nya. Untuk membuat file generator-nya silakan jalankan perintah berikut.

Buat UI

Langkah berikutnya kita perlu membuat tampilannya. Silakan buka file main.dart dan ubah kode didalamnya menjadi seperti berikut.

Adapun output dari kode UI diatas adalah sebagai berikut.

Buat Fitur Infinite List

Di langkah sebelumnya, kita sudah berhasil menampilkan datanya dari endpoint. Tapi, fitur infinite list-nya belum bisa berfungsi. Nah, di langkah ini kita akan membuatnya. Silakan buka kembali file main.dart dan ubah kode berikut.

Menjadi seperti berikut.

Kemudian, kita set property controller dari widget ListView.separated .

Berikut adalah video hasilnya.

Fitur infinite ListView

Kesimpulan

Jadi, di tulisan ini kita telah berhasil membuat Infinite ListView di Flutter. Caranya cukup mudah kan. Daripada kita pakai plugin spesial untuk fitur tersebut mending kita buat sendiri dan lebih fully customize. Untuk source code lengkapnya bisa dilihat di Github berikut ya.

--

--