Buscar pacotes, repositórios e categorias de apps

Detalhes do pacotev0.1.4

dropdown_formfield

Um campo de formulário com botão suspenso dentro de um campo de formulário.

Downloads em 30 dias
317
Curtidas
111
Pontos Pub
40

Instalar pacote

flutter pub add dropdown_formfield

Visão geral do pacote

Orientação gerada a partir de informações públicas. Apenas para referência.

Um pacote Flutter que fornece um widget de campo de formulário com menu suspenso, combinando um DropdownButton com estilos padrão de campo de formulário e validação. Ele simplifica a integração de menus suspenso em formulários ao lidar com o estado de entrada, mensagens de erro e lógica de envio do formulário. O widget suporta segurança contra nulos e foi projetado para uso fácil no ecossistema de formulários do Flutter. É particularmente útil quando você precisa de um componente de menu suspenso limpo e reutilizável que se encaixe perfeitamente em layouts de formulários.

Casos de uso

  • Entradas de formulário com seleção suspensa
  • Campos de formulário dinâmicos com base na escolha do usuário
  • Configurações de preferência do usuário com opções pré-definidas
  • Formulários de entrada de dados que exigem seleção de categoria
  • entradas de menu suspenso sensíveis à validação

Principais recursos

  • Integrado com o widget Form do Flutter
  • Suporte para validação e mensagens de erro
  • componente de lista suspensa reutilizável
  • API simples para vinculação de valores
  • Funciona com segurança nula

Indicado para

  • Desenvolvedores construindo aplicativos com muitos formulários
  • Equipes que precisam de componentes de formulário consistentes
  • Projetos usando a validação de formulário do Flutter
  • Designers de interface querendo menus suspensores acessíveis
  • Aplicativos com campos de formulário dinâmicos ou condicionais

Considerações

  • Requer manipulação manual da lista de itens do menu suspenso
  • Personalização limitada além do estilo básico
  • Nenhuma busca ou filtragem embutida
  • Não adequado para listas de opções muito grandes
  • Depende de pacote externo para funcionalidades avançadas

README original

Snapshot do README original do repositório-fonte vinculado. Consulte o repositório para o conteúdo mais recente.

Donate - Buy Me A Coffee

Dropdown form field

A dropdown form field using a dropdown button inside a form field.

Demo

Features

  • Can be used as regular form field.
  • Simple to implement.
  • Simple and intuitive to use in the app.
  • Provides validation of data.
  • Provides requirement of the field.
  • Follows the app theme and colors.

Example

import 'package:dropdown_formfield/dropdown_formfield.dart';

void main() => runApp(MyApp());

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: MyHomePage(),
    );
  }
}

class MyHomePage extends StatefulWidget {
  @override
  _MyHomePageState createState() => _MyHomePageState();
}

class _MyHomePageState extends State<MyHomePage> {
  String _myActivity;
  String _myActivityResult;
  final formKey = new GlobalKey<FormState>();

  @override
  void initState() {
    super.initState();
    _myActivity = '';
    _myActivityResult = '';
  }

  _saveForm() {
    var form = formKey.currentState;
    if (form.validate()) {
      form.save();
      setState(() {
        _myActivityResult = _myActivity;
      });
    }
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('Dropdown Formfield Example'),
      ),
      body: Center(
        child: Form(
          key: formKey,
          child: Column(
            mainAxisAlignment: MainAxisAlignment.start,
            children: <Widget>[
              Container(
                padding: EdgeInsets.all(16),
                child: DropDownFormField(
                  titleText: 'My workout',
                  hintText: 'Please choose one',
                  value: _myActivity,
                  onSaved: (value) {
                    setState(() {
                      _myActivity = value;
                    });
                  },
                  onChanged: (value) {
                    setState(() {
                      _myActivity = value;
                    });
                  },
                  dataSource: [
                    {
                      "display": "Running",
                      "value": "Running",
                    },
                    {
                      "display": "Climbing",
                      "value": "Climbing",
                    },
                    {
                      "display": "Walking",
                      "value": "Walking",
                    },
                    {
                      "display": "Swimming",
                      "value": "Swimming",
                    },
                    {
                      "display": "Soccer Practice",
                      "value": "Soccer Practice",
                    },
                    {
                      "display": "Baseball Practice",
                      "value": "Baseball Practice",
                    },
                    {
                      "display": "Football Practice",
                      "value": "Football Practice",
                    },
                  ],
                  textField: 'display',
                  valueField: 'value',
                ),
              ),
              Container(
                padding: EdgeInsets.all(8),
                child: RaisedButton(
                  child: Text('Save'),
                  onPressed: _saveForm,
                ),
              ),
              Container(
                padding: EdgeInsets.all(16),
                child: Text(_myActivityResult),
              )
            ],
          ),
        ),
      ),
    );
  }
}

License

This project is licensed under the BSD License. See the LICENSE file for details.

Categorias

Repositório-fonte

Projetos que usam este pacote

Ainda não há dados.