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

dropdown_plus_plus 표지
패키지 상세v0.1.1+1

dropdown_plus_plus

검색, 키보드 탐색, 오프라인 데이터 소스, 원격 데이터 소스 및 간편한 사용자 정의를 지원하는 폼용 간단하고 사용하기 쉬운 드롭다운.

AndroidiOSWebmacOSWindowsLinux
30일 다운로드
14
좋아요
11
Pub 점수
140

패키지 설치

flutter pub add dropdown_plus_plus

패키지 개요

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

DropdownPlusPlus는 폼에 원활하게 통합될 수 있도록 설계된 유연하고 사용자 친화적인 드롭다운 위젯으로, Flutter 애플리케이션을 위한 것입니다. 검색 기능, 키보드 탐색, 오프라인 및 원격 데이터 소스를 지원합니다. 패키지는 광범위한 사용자 정의 옵션을 제공하여 다양한 플랫폼에서 동적이고 반응형 폼 입력에 이상적입니다. 깔끔한 API와 최소한의 설정으로 사용자 경험을 향상시키면서도 개발자의 유연성을 유지합니다.

사용 사례

  • 검색 가능한 드롭다운이 있는 폼 입력
  • API에서 동적 데이터 로드
  • 양식 내 오프라인 데이터 선택
  • 키보드로 탐색 가능한 드롭다운 메뉴
  • 드롭다운 항목용 사용자 정의 가능한 UI
  • 크로스 플랫폼 폼 컴포넌트

주요 기능

  • 실시간 필터링을 지원하는 검색 가능한 드롭다운
  • 원격 및 로컬 데이터 소스 지원
  • 키보드 탐색(화살표 키, 엔터)
  • 높은 사용자 정의 가능한 외관 및 동작
  • 내장된 로딩 및 오류 상태
  • 모든 플랫폼에서의 반응형 디자인

적합한 대상

  • 복잡한 폼을 개발하는 개발자
  • 검색 가능한 드롭다운이 필요한 앱
  • 원격 또는 오프라인 데이터가 필요한 프로젝트
  • 크로스 플랫폼 일관성을 우선시하는 팀
  • 유연한 드롭다운이 필요한 UI 중심 애플리케이션
  • 재사용 가능한 폼 컴포넌트를 사용한 빠른 프로토타이핑

고려 사항

  • 비동기 데이터 로딩을 신중하게 처리해야 합니다
  • 복잡한 테마를 위해 추가 스타일링이 필요할 수 있습니다
  • 매우 큰 데이터 세트 사용 시 성능 영향
  • 기본 사용법 외에 문서가 제한적
  • 사용자 정의 스크롤 동작이 필요할 수 있음
  • 동적 업데이트를 위해 외부 상태 관리에 의존

원본 README

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

dropdown_plus_plus

Simple and easy to use Dropdown in forms with search, keyboard navigation, offiline data source, remote data source and easy customization.

A maintained fork of dropdown_plus with a lot more customisations.

Getting Started

Simple Text Dropdown.

TextDropdownFormField(
  options: ["Male", "Female"],
  decoration: InputDecoration(
      border: OutlineInputBorder(),
      suffixIcon: Icon(Icons.arrow_drop_down),
      labelText: "Gender"),
  cursorColor: Colors.green,
  dropdownItemColor: Colors.red,
),

Install

packages.yaml
dropdown_plus_plus: <lastest version>

Customizable Example


 final List<Map<String, dynamic>> _roles = [
    {"name": "Super Admin", "desc": "Having full access rights", "role": 1},
    {
      "name": "Admin",
      "desc": "Having full access rights of a Organization",
      "role": 2
    },
    {
      "name": "Manager",
      "desc": "Having Magenent access rights of a Organization",
      "role": 3
    },
    {
      "name": "Technician",
      "desc": "Having Technician Support access rights",
      "role": 4
    },
    {
      "name": "Customer Support",
      "desc": "Having Customer Support access rights",
      "role": 5
    },
    {"name": "User", "desc": "Having End User access rights", "role": 6},
  ];


// ...
// ...

DropdownFormField<Map<String, dynamic>>(
    onEmptyActionPressed: () async {},
    dropdownItemSeparator: Divider(
      color: Colors.black,
      height: 1,
      ),
    decoration: InputDecoration(
        border: OutlineInputBorder(),
        suffixIcon: Icon(Icons.arrow_drop_down),
        labelText: "Access"),
    onSaved: (dynamic str) {},
    onChanged: (dynamic str) {},
    validator: (dynamic str) {},
    displayItemFn: (dynamic item) => Text(
    item['name'] ?? '',
    style: TextStyle(fontSize: 16),
    ),
    findFn: (dynamic str) async => _roles,
    filterFn: (dynamic item, str) =>
        item['name'].toLowerCase().indexOf(str.toLowerCase()) >= 0,
    dropdownItemFn: (dynamic item, position, focused,
            dynamic lastSelectedItem, onTap) =>
        ListTile(
    title: Text(item['name']),
    subtitle: Text(
        item['desc'] ?? '',
    ),
    tileColor:
        focused ? Color.fromARGB(20, 0, 0, 0) : Colors.transparent,
    onTap: onTap,
    ),
),

Options

final bool autoFocus;
final bool Function(dynamic item, String str)? filterFn;
final bool Function(dynamic item1, dynamic item2)? selectedFn;
final Future<List<dynamic>> Function(String str) findFn;

final ListTile Function(
  dynamic item,
  int position,
  bool focused,
  bool selected,
  Function() onTap,
) dropdownItemFn;

final Widget Function(dynamic item) displayItemFn;
final InputDecoration? decoration;
final Color? dropdownColor;
final Color? cursorColor;
final DropdownEditingController<T>? controller;
final void Function(dynamic item)? onChanged;
final void Function(dynamic)? onSaved;
final String? Function(T?)? validator;
final double? dropdownHeight;
final TextStyle? searchTextStyle;
final String emptyText;
final String emptyActionText;
final Future<void> Function(String)? onEmptyActionPressed;
final Widget? dropdownItemSeparator;

카테고리

소스 저장소

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

아직 데이터가 없습니다.