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

easy_sticky_header 표지
패키지 상세v1.1.1

easy_sticky_header

스크롤을 지원하는 모든 위젯에 사용하기 쉬우면서도 강력한 스티키 헤더입니다.

AndroidiOSWebmacOSWindowsLinux
30일 다운로드
5.6천
좋아요
56
Pub 점수
160

패키지 설치

flutter pub add easy_sticky_header

패키지 개요

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

easy_sticky_header는 스크롤 가능한 위젯에서 스티키 헤더를 구현하는 간단하고 유연한 방법을 제공하는 Flutter 패키지입니다. 스크롤 중에 헤더가 항상 상단에 보이도록 자동으로 유지하여 그룹화된 콘텐츠가 있는 목록이나 그리드에서 사용자 경험을 향상시킵니다. 사용이 쉬운 설계로 ListView, Scrollable 및 기타 주요 플랫폼의 스크롤 가능한 컴포넌트와 원활하게 통합됩니다. 사용자 정의 헤더 위젯과 부드러운 전환을 지원하여 구조화된 스크롤 데이터 표시가 필요한 앱에 적합합니다.

사용 사례

  • 그룹화된 목록 보기
  • 스크롤 가능한 대시보드
  • 제품 카테고리 목록
  • 동적 콘텐츠 섹션
  • 사용자 프로필 타임라인

주요 기능

  • 자동 헤더 고정
  • 사용자 정의 가능한 헤더 위젯
  • 부드러운 전환 애니메이션
  • 크로스 플랫폼 호환성
  • 필요한 설정 최소화
  • 중첩 스크롤 가능한 요소를 지원합니다

적합한 대상

  • 스크롤 가능한 UI를 구축하는 개발자
  • 분류된 콘텐츠를 가진 앱
  • 깨끗한 헤더 동작을 원하는 디자이너
  • 반응형 레이아웃이 필요한 프로젝트
  • 개발 속도를 우선시하는 팀

고려 사항

  • 매우 큰 목록과 함께 성능에 영향을 줄 수 있습니다
  • 복잡한 중첩 스크롤에서는 신중한 조작이 필요합니다
  • 고급 애니메이션을 위한 제한된 사용자 정의
  • 매우 동적인 헤더 콘텐츠에 최적화되지 않음
  • 정적 또는 반정적 헤더 디자인에 가장 적합

원본 README

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

easy_sticky_header

platform pub license issues commits

English | 中文

An easy-to-use and powerful sticky header for any widget that supports scrolling.

Features

  • Support widget for horizontal or vertical scrolling
  • Support widget for reverse scrolling
  • Allow dynamic building of header widget and support custom transition animation
  • Header widget can dynamically change stickiness
  • Support jumping to the header widget of the specified index
  • Support header widget grouping
  • Support infinite list

Usage

Add dependency:

dependencies:
  easy_sticky_header: ^1.1.1

Import package:

import 'package:easy_sticky_header/easy_sticky_header.dart';

Example:

class Example extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return StickyHeader(
      child: ListView.builder(
        itemCount: 100,
        itemBuilder: (context, index) {
          // Custom header widget.
          if (index % 3 == 0) {
            return StickyContainerWidget(
              index: index,
              child: Container(
                color: Color.fromRGBO(Random().nextInt(256),
                    Random().nextInt(256), Random().nextInt(256), 1),
                padding: const EdgeInsets.only(left: 16.0),
                alignment: Alignment.centerLeft,
                width: double.infinity,
                height: 50,
                child: Text(
                  'Header #$index',
                  style: const TextStyle(
                    color: Colors.white,
                    fontSize: 16,
                  ),
                ),
              ),
            );
          }
          // Custom item widget.
          return Container(
            width: double.infinity,
            height: 80,
            color: Colors.white,
          );
        },
      ),
    );
  }
}

For more features, please go to the example project to see the details.

Screenshots

screenshot1 screenshot2 screenshot3
screenshot4 screenshot5 screenshot6
screenshot7 screenshot8 screenshot9

Contribution

You are welcome to contribute here 😄!

You can open an issue, if you find a bug, or want a new feature.

You can open up a PR, if you fixed a bug or implemented a new feature.

License

MIT License

Copyright (c) 2022 crasowas

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.

카테고리

소스 저장소

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

아직 데이터가 없습니다.