liqkit_ui
Inputs

Combobox

LiqCombobox is a typeahead-filtered dropdown. The user types a query into the text field and matching options are listed beneath. Distinct from LiqPopupButton, which is a static dropdown of preset options. Matching is a case-insensitive substring on the option label by default; pass a custom filter callback to change that.

Default

import 'package:docs_snippets/src/demo.dart';import 'package:docs_snippets/src/snippet_frame.dart';import 'package:flutter/widgets.dart';import 'package:liqkit_ui/liqkit_ui.dart';/// Snippet builder consumed by `apps/docs_snippets/lib/src/routes.g.dart`.Widget comboboxDefaultBuilder(BuildContext context) {  return const _ComboboxDefaultDemo();}class _ComboboxDefaultDemo extends StatefulWidget {  const _ComboboxDefaultDemo();  @override  State<_ComboboxDefaultDemo> createState() => _ComboboxDefaultDemoState();}class _ComboboxDefaultDemoState extends State<_ComboboxDefaultDemo> {  bool _open = false;  @override  Widget build(BuildContext context) {    return SnippetFrame(      maxWidth: 420,      height: _open ? 314 : null,      child: Align(        alignment: Alignment.topCenter,        child: LiqDemo<String?>(          initial: null,          builder:              (v, set) =>              LiqCombobox<String>(                placeholder: 'Choose a country',                value: v,                onChanged: set,                onOpenChanged: (open) => setState(() => _open = open),                options: const <LiqComboboxOption<String>>[                  LiqComboboxOption<String>(                    value: 'us',                    label: 'United States',                  ),                  LiqComboboxOption<String>(value: 'ca', label: 'Canada'),                  LiqComboboxOption<String>(                    value: 'uk',                    label: 'United Kingdom',                  ),                  LiqComboboxOption<String>(value: 'au', label: 'Australia'),                  LiqComboboxOption<String>(value: 'jp', label: 'Japan'),                  LiqComboboxOption<String>(value: 'de', label: 'Germany'),                  LiqComboboxOption<String>(value: 'fr', label: 'France'),                  LiqComboboxOption<String>(value: 'br', label: 'Brazil'),                ],              ),        ),      ),    );  }}

Preselected

import 'package:docs_snippets/src/demo.dart';import 'package:docs_snippets/src/snippet_frame.dart';import 'package:flutter/widgets.dart';import 'package:liqkit_ui/liqkit_ui.dart';/// Snippet builder consumed by `apps/docs_snippets/lib/src/routes.g.dart`.Widget comboboxPreselectedBuilder(BuildContext context) {  return const _ComboboxPreselectedDemo();}class _ComboboxPreselectedDemo extends StatefulWidget {  const _ComboboxPreselectedDemo();  @override  State<_ComboboxPreselectedDemo> createState() =>      _ComboboxPreselectedDemoState();}class _ComboboxPreselectedDemoState extends State<_ComboboxPreselectedDemo> {  bool _open = false;  @override  Widget build(BuildContext context) {    return SnippetFrame(      maxWidth: 420,      height: _open ? 314 : null,      child: Align(        alignment: Alignment.topCenter,        child: LiqDemo<String?>(          initial: 'jp',          builder:              (v, set) =>              LiqCombobox<String>(                placeholder: 'Choose a country',                value: v,                onChanged: set,                onOpenChanged: (open) => setState(() => _open = open),                options: const <LiqComboboxOption<String>>[                  LiqComboboxOption<String>(                    value: 'us',                    label: 'United States',                  ),                  LiqComboboxOption<String>(value: 'ca', label: 'Canada'),                  LiqComboboxOption<String>(                    value: 'uk',                    label: 'United Kingdom',                  ),                  LiqComboboxOption<String>(value: 'au', label: 'Australia'),                  LiqComboboxOption<String>(value: 'jp', label: 'Japan'),                  LiqComboboxOption<String>(value: 'de', label: 'Germany'),                  LiqComboboxOption<String>(value: 'fr', label: 'France'),                  LiqComboboxOption<String>(value: 'br', label: 'Brazil'),                ],              ),        ),      ),    );  }}

On this page