패키지, 저장소 및 앱 카테고리 검색

section_view 표지
패키지 상세v2.0.6

section_view

알파벳과 새로 고침을 포함하는 섹션 목록 뷰를 제공하며, 컨트롤을 완전히 사용자 지정할 수 있습니다

AndroidiOSWebmacOSWindowsLinux
30일 다운로드
1.9천
좋아요
34
Pub 점수
140

패키지 설치

flutter pub add section_view

패키지 개요

공개 정보를 바탕으로 생성한 선택 가이드입니다.

SectionView는 알파벳 인덱싱과 풀-투-리프레시 기능을 갖춘 섹션화된 리스트 뷰를 생성할 수 있도록 해주는 Flutter 패키지입니다. 섹션 헤더의 완전한 사용자 정의와 스크롤 동작 제어가 가능하여 연락처 목록, 카탈로그 또는 알파벳 순으로 정렬된 모든 데이터에 이상적입니다. 이 패키지는 Android, iOS, Web, macOS, Windows, Linux를 포함한 모든 주요 플랫폼을 지원합니다. 개발자는 앱의 디자인 언어에 맞게 UI 및 상호작용을 조정할 수 있습니다.

사용 사례

  • 알파벳 인덱스가 있는 연락처 목록
  • 그룹화된 항목이 포함된 제품 카탈로그
  • 사용자 정의 가능한 스크롤 가능한 섹션
  • 갱신 기능을 갖춘 데이터 표시
  • 목록 내 알파벳 탐색

주요 기능

  • 알파벳 순 섹션 헤더
  • 당기기로 새로 고침 지원
  • 완전히 사용자 정의 가능한 UI
  • 크로스 플랫폼 호환성
  • 섹션 간 부드러운 스크롤링
  • 사용자 정의 가능한 헤더 스타일

적합한 대상

  • 알파벳 정렬이 필요한 앱
  • 사용자 정의 섹션 컨트롤을 원하는 개발자
  • 새로 고침 가능한 목록이 필요한 프로젝트
  • 그룹화된 데이터를 가진 UI 중심 애플리케이션
  • 크로스플랫폼 모바일 및 웹 앱

고려 사항

  • 데이터 그룹화를 수동으로 처리해야 함
  • 사용자 지정은 복잡성을 증가시킬 수 있습니다
  • 성능은 목록 크기에 따라 달라집니다
  • 제한된 내장 애니메이션
  • 매우 큰 데이터 세트에 최적화되지 않음
  • 신중한 상태 관리가 필요합니다

원본 README

연결된 소스 저장소의 README 원문 스냅샷입니다. 최신 내용은 저장소에서 확인하세요.

Notice: 2.0.0 has break changing

  • The header sticky will use flutter_list_view to implement
  • Refresh control will construct by user, like pull_to_refresh
SectionView<AlphabetHeader<CountryModel>, CountryModel>(
  source: _filterCountries,
  onFetchListData: (header) => header.items,
  enableSticky: true,
  alphabetAlign: Alignment.center,
  alphabetInset: const EdgeInsets.all(4.0),
  headerBuilder: getDefaultHeaderBuilder((d) => d.alphabet),
  alphabetBuilder: getDefaultAlphabetBuilder((d) => d.alphabet),
  tipBuilder: getDefaultTipBuilder((d) => d.alphabet),
  refreshBuilder: (child) {
    return SmartRefresher(
        enablePullDown: true,
        enablePullUp: false,
        header: const WaterDropHeader(),
        controller: _refreshController,
        onRefresh: _onRefresh,
        child: child);
  },
  itemBuilder:
      (context, itemData, itemIndex, headerData, headerIndex) {
    return Padding(
      padding: const EdgeInsets.only(right: 12.0),
      child: ListTile(
          title: Text(itemData.name),
          trailing: Text(itemData.phoneCode)),
    );
  },
),

Features

  1. Show with section view
  2. Alphabet support
  3. Refresh support

Screen

Usage

Firstly, you can construct data like

List<GroupModel> data = [
    GroupModel(name: "Group 1", items: [
      ItemModel(name: "Item 1-1"),
      ItemModel(name: "Item 1-2"),
      ItemModel(name: "Item 1-3"),
      ItemModel(name: "Item 1-4"),
      ItemModel(name: "Item 1-5"),
    ]),
    GroupModel(name: "Group 2", items: [
      ItemModel(name: "Item 2-1"),
      ItemModel(name: "Item 2-2"),
      ItemModel(name: "Item 2-3"),
      ItemModel(name: "Item 2-4"),
      ItemModel(name: "Item 2-5"),
    ]),
    GroupModel(name: "Group 3", items: [
      ItemModel(name: "Item 3-1"),
      ItemModel(name: "Item 3-2"),
      ItemModel(name: "Item 3-3"),
      ItemModel(name: "Item 3-4"),
      ItemModel(name: "Item 3-5"),
    ]),
  ];

After that, you can put code into you project like as below

SectionView<GroupModel, ItemModel>(
  source: data,
  onFetchListData: (header) => header.items,
  headerBuilder: getDefaultHeaderBuilder((d) => d.name,
      bkColor: Colors.green,
      style:
          const TextStyle(fontSize: 18, color: Colors.white)),
  itemBuilder:
      (context, itemData, itemIndex, headerData, headerIndex) =>
          ListTile(
            title: Text(itemData.name),
          )),

Additional information

If you want to custom your UI, please follow /example/lib/fullSectionList.dart

Todo

  • Provide tailer load more functionality
  • Provide programaticly invoke onRefresh.

카테고리

의존성

의존성 목록 1 개

소스 저장소

이 패키지를 사용하는 프로젝트

아직 데이터가 없습니다.