[flutter] DropdownButton 위젯과 함께 사용하는 검색 기능

소개

DropdownButton는 Flutter 앱에서 사용자가 항목을 선택할 수 있도록 하는 UI 위젯입니다. 하지만 항목이 많다면 DropdownButton를 사용하기에는 불편할 수 있습니다. DropdownButton 위젯과 함께 사용하여 검색 기능을 추가하여 이러한 문제를 해결할 수 있습니다.

DropdownButton에서 검색 기능을 사용하려면 ‘flutter_typeahead’ 패키지를 사용할 수 있습니다. 이 패키지는 DropdownButton와 함께 사용하여 사용자가 검색할 수 있는 드롭다운 목록을 만들 수 있습니다.

패키지 설치

먼저 pubspec.yaml 파일에 ‘flutter_typeahead’ 패키지를 추가합니다.

dependencies:
  flutter_typeahead: ^4.0.0

그런 다음 터미널에서 아래 명령어를 실행하여 패키지를 설치합니다.

flutter pub get

예제

다음은 DropdownButton와 함께 ‘flutter_typeahead’ 패키지를 사용하여 검색 기능을 추가하는 예제입니다.

import 'package:flutter/material.dart';
import 'package:flutter_typeahead/flutter_typeahead.dart';

void main() {
  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  final List<String> items = [
    'Apple',
    'Banana',
    'Orange',
    'Mango',
    'Pineapple',
  ];

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(
          title: Text('DropdownButton with Search'),
        ),
        body: Center(
          child: TypeAheadField(
            textFieldConfiguration: TextFieldConfiguration(
              decoration: InputDecoration(
                hintText: 'Search fruits',
              ),
            ),
            suggestionsCallback: (pattern) async {
              return items
                  .where((item) => item.toLowerCase().contains(pattern.toLowerCase()))
                  .toList();
            },
            itemBuilder: (context, suggestion) {
              return ListTile(
                title: Text(suggestion),
              );
            },
            onSuggestionSelected: (suggestion) {
              // Handle suggestion selection
            },
          ),
        ),
      ),
    );
  }
}

이 예제는 ‘flutter_typeahead’ 패키지를 사용하여 TextField와 함께 DropdownButton 기능을 구현한 모습입니다. 사용자가 텍스트를 입력하면 해당하는 항목이 필터링되어 보여집니다.

이제 위와 같이 DropdownButton와 ‘flutter_typeahead’ 패키지를 함께 사용하여 검색 기능을 추가할 수 있습니다.

결론

DropdownButton는 사용자가 항목을 선택하는데 유용한 위젯이지만 항목이 많은 경우에는 검색 기능을 추가하여 사용성을 향상시킬 수 있습니다. ‘flutter_typeahead’ 패키지는 DropdownButton와 함께 사용하여 간편하게 검색 기능을 구현할 수 있습니다.

참고 자료