FLUTTER ECOSYSTEM

dharmendraiosdev/flutter_section_list_view

iOS UITableView처럼 섹션을 지원하는 확장된 Flutter ListView

flutter_section_list_view 프로젝트 이미지
Stars
7
Forks
3
최근 푸시(UTC)
2023. 11. 14.
프로젝트 상태
활성
dharmendraiosdev GitHub avatar
언어DartSwiftKotlinObjective-C

이 저장소가 배포한 패키지

사용 중인 의존성

의존성 목록 2 개
  • flutter{"sdk":"flutter"}
  • flutter_test개발 의존성{"sdk":"flutter"}

원본 README

아래는 영문 원문 스냅샷입니다. 최신 내용은 GitHub에서 확인하세요.

README 펼치기 / 접기

flutter_section_list_view

A flutter list view which supports sections like iOS UITableView with no overhead

Usage

To use this plugin, add flutter_section_list_view as a dependency in your pubspec.yaml file.

Getting Started

Import this class
import 'flutter_section_list_view/flutter_section_list_view.dart';
Add flutter_section_list_view Widget

After importing this plugin to your project, you can simply use it as a normal widget


FlutterSectionListView(
        numberOfSection: 4,
        numberOfRowsInSection: (section) {
          return section * 3 + 1;
        },
        sectionWidget: (section) {
          return Container(child: Padding(
            padding: const EdgeInsets.all(8),
            child: Text('Section $section'),
          ), color: Colors.grey,);
        },
        rowWidget: (section, row) {
          return Container(
            child: Padding(
              padding: EdgeInsets.all(8),
              child: Text('Row $section - $row'),
            ),
          );
        },
      )

To use Pull-To-Refresh feature, simply provide value to attribute 'refresh', a callback function

listView.refresh = () async {
      await new Future.delayed(new Duration(seconds: 3));
      print('List Refreshed');
    };

For Pagination feature, provide value to attribute 'loadMoreData', a callback function

listView.loadMoreData = () async {
      await new Future.delayed(new Duration(seconds: 2));
      print('More Data loaded and List refreshed');
      /// set 'isMoreAvailable' attribute to 'false' when there are no more pages to return 
      listView.isMoreAvailable = false;
    };