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

marquee_widget 표지
패키지 상세v1.2.0

marquee_widget

RTL을 지원하는 위젯 텍스트 및 기타 위젯을 스크롤하는 플러터 위젯입니다.

AndroidiOSWebmacOSWindowsLinux
30일 다운로드
4.6천
좋아요
68
Pub 점수
140

패키지 설치

flutter pub add marquee_widget

패키지 개요

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

marquee_widget는 수평 스크롤 텍스트 및 기타 위젯을 가능하게 하는 플러터 패키지로, 오른쪽에서 왼쪽으로의 레이아웃(RTL)을 지원합니다. 제한된 공간에 긴 콘텐츠를 표시할 때, 예를 들어 제목이나 알림과 같은 경우에 이상적입니다. 이 위젯은 화면을 통해 콘텐츠를 부드럽게 애니메이션 처리하여 가독성과 시각적 매력을 보장합니다. 안드로이드, iOS, 웹, 맥OS, 윈도우, 리눅스 등 모든 주요 플랫폼에서 작동하며 매우 유연합니다. 간단함을 고려해 설계되어 기존 플러터 앱에 복잡한 설정 없이 쉽게 통합할 수 있습니다. 패키지는 활발히 유지보수되고 오픈소스이므로 커뮤니티 기여가 가능합니다.

사용 사례

  • 뉴스 앱에서 긴 제목 표시하기
  • 진행 중인 알림 또는 경고 표시
  • 다시보드에서 티커 스타일 텍스트 애니메이션화
  • 아랍어 및 히브리어와 같은 RTL 언어 지원
  • 키오스크 또는 디지털 사인에 동적 UI 요소 만들기

주요 기능

  • 부드러운 수평 스크롤 애니메이션
  • 완전한 RTL 언어 지원
  • 크로스 플랫폼 호환성
  • 기존 Flutter 코드와의 간편한 통합
  • 사용자 정의 가능한 속도 및 지연 설정
  • 텍스트뿐만 아니라 모든 위젯을 지원합니다

적합한 대상

  • 다국어 앱을 개발하는 개발자
  • 애니메이션 텍스트 효과가 필요한 디자이너
  • 긴 내용을 컴팩트하게 표시해야 하는 앱
  • 키오스크 또는 공공 정보 시스템
  • 실시간 데이터 대시보드

고려 사항

  • 매우 긴 콘텐츠와 함께 성능에 영향을 줄 수 있습니다
  • 가독성을 위해 스크롤 속도를 신중하게 조정해야 합니다
  • 정적 텍스트 표시에 적합하지 않습니다
  • 기본 매개변수를 초과한 사용자 정의 옵션이 제한적입니다
  • 사용자 집중을 방해하지 않도록 적절히 사용하는 것이 가장 좋습니다

원본 README

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

marquee_widget

A Flutter widget that scrolls Widget Text and other Widget with supported RTL. Provides many customizationsincluding custom scroll directions and velocities, pausing after every round and specifying custom durations and curves for accelerating and decelerating.

Usage

This is a minimalistic example:

Marquee(
  child:Text( 'This project is a starting point for a Dart package, a library module containing code that can be shared easily across multiple Flutter or Dart projects. '),
)

And here's a piece of code that makes full use of the marquee's customizability:

set Width and Height with Continer()

Marquee(
  child:Text( 'This project is a starting point for a Dart package'),
  scrollAxis: Axis.horizontal,
  textDirection : TextDirection.rtl,
  animationDuration: Duration(seconds: 1),
  backDuration: Duration(milliseconds: 5000),
  pauseDuration: Duration(milliseconds: 2500),
  directionMarguee: DirectionMarguee.oneDirection,

)

Exmpale

GridView.count(
        crossAxisCount: 2,
        childAspectRatio: 0.7,
        children: <Widget>[
          GridTile(
            child: Card(
              child: Column(
                children: <Widget>[
                  Expanded(
                      child: Image.network(
                    "https://i.pinimg.com/564x/9d/a6/36/9da636b9e60ea40b18921b0053b7d486.jpg",
                    fit: BoxFit.fitHeight,
                  )),
                  Marquee(
                      child: Text(
                    "Flutter is a free and open source Google mobile UI ",
                    style: TextStyle(fontSize: 16),
                  )),
                ],
              ),
            ),
          ),
          GridTile(
            child: Card(
              child: Column(
                children: <Widget>[
                  Expanded(
                      child: Image.network(
                    "https://cdn-images-1.medium.com/max/1000/1*upTyVPOfBb0c4o1r57C9_w.png",
                    fit: BoxFit.fitHeight,
                  )),
                  Marquee(
                      child: Text(
                    "Flutter is a free and open source Google mobile UI ",
                    style: TextStyle(fontSize: 16),
                  )),
                ],
              ),
            ),
          ),
          GridTile(
            child: Card(
              child: Column(
                children: <Widget>[
                  Expanded(
                      child: Marquee(
                          child: Container(
                              width: 1000,
                              child: Image.network(
                                "https://i.pinimg.com/564x/9d/a6/36/9da636b9e60ea40b18921b0053b7d486.jpg",
                                fit: BoxFit.fitWidth,
                              )))),
                  Marquee(
                      child: Text(
                    "Flutter is a free and open source Google mobile UI ",
                    style: TextStyle(fontSize: 16),
                  )),
                ],
              ),
            ),
          ),
          GridTile(
            child: Card(
              child: Column(
                children: <Widget>[
                  Marquee(
                      child: Container(width: 1000,
                        child: Column(
                    children: <Widget>[
                        Marquee(
                            child: Container(
                                width: 1000,height: 260,
                                child: Image.network(
                                  "https://cdn-images-1.medium.com/max/1000/1*upTyVPOfBb0c4o1r57C9_w.png",
                                  fit: BoxFit.fitWidth,
                                ))),
                        Text(
                          "Flutter is a free and open source Google mobile UI ",
                          style: TextStyle(fontSize: 16),
                        ),
                    ],
                  ),
                      )),
                ],
              ),
            ),
          ),
        ],
      ),

LICENSE

Copyright (c) 2018 Marcel Garus

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.

카테고리

소스 저장소

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