Buscar pacotes, repositórios e categorias de apps

Detalhes do pacotev2.1.0

flutter_conditional_rendering

Um pacote Flutter que aprimora o renderização condicional, suporta condições if-else e switch.

AndroidiOSWebmacOSWindowsLinux
Downloads em 30 dias
9,7 mil
Curtidas
114
Pontos Pub
160

Instalar pacote

flutter pub add flutter_conditional_rendering

Visão geral do pacote

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

Um pacote Flutter que simplifica o renderização condicional no desenvolvimento de UI estendendo as capacidades dos widgets com declarações if-else e switch. Permite que os desenvolvedores escrevam código mais limpo e legível ao exibir widgets condicionalmente com base em valores em tempo de execução. O pacote se integra perfeitamente a projetos existentes do Flutter e suporta todas as principais plataformas, incluindo Android, iOS, Web, macOS, Windows e Linux. Ideal para interfaces dinâmicas que exigem controle de visibilidade baseado em lógica.

Casos de uso

  • Elementos de interface dinâmicos com base no estado
  • Exibição condicional de widgets em formulários
  • Alterações de layout baseadas em switch
  • Renderização de interface baseada em função do usuário
  • Expressões ternárias aninhadas simplificadas
  • Design responsivo com lógica específica de plataforma

Principais recursos

  • Suporta a sintaxe if-else em árvores de widget
  • Fornece renderização condicional switch-case
  • Reduz o código repetitivo em condições complexas
  • Funciona em todas as plataformas do Flutter
  • Configuração mínima com o comando pub add
  • Lógica condicional limpa e legível

Indicado para

  • Desenvolvedores procurando código de IU condicional mais limpo
  • Projetos com renderização frequente dependente do estado
  • Equipes priorizando lógica de widget mantida
  • Aplicativos que exigem variações de interface do usuário específicas da plataforma
  • Desenvolvedores front-end usando padrões de interface declarativa

Considerações

  • Pode aumentar ligeiramente o tamanho do pacote
  • Requer conhecimento sobre a sintaxe de expressão do Dart
  • Não adequado para gerenciamento de estado muito complexo
  • Limitado a tipos simples de condição
  • Melhor usado junto com soluções de gerenciamento de estado
  • Evite o uso excessivo em estruturas de widget profundamente aninhadas

README original

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

flutter_conditional_rendering

A flutter package which enhances conditional rendering, supports if-else and switch conditions.

Why

In flutter if you want to do conditional rendering, you may do this:

class MyWidget extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return Column(
      children: <Widget>[
        if (someCondition == true)
          Text('The condition is true!'),
      ],
    );
  }
}

But what if you want to use a tertiary (if-else) condition?

class MyWidget extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return Column(
      children: <Widget>[
        someCondition == true ?
          Text('The condition is true!'):
          Text('The condition is false!'),
      ],
    );
  }
}

It is okay for a single Text widget, but the readability quickly become very bad when the child widget is multi-layered.

Usage

If-Else condition:
class MyWidget extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return Column(
      children: <Widget>[
        Conditional.single(
          context: context,
          conditionBuilder: (BuildContext context) => someCondition == true,
          widgetBuilder: (BuildContext context) => Text('The condition is true!'),
          fallbackBuilder: (BuildContext context) => Text('The condition is false!'),
        ),
      ],
    );
  }
}
Switch condition:
class MyWidget extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return Column(
      children: <Widget>[
        ConditionalSwitch.single<String>(
          context: context,
          valueBuilder: (BuildContext context) => 'A',
          caseBuilders: {
            'A': (BuildContext context) => Text('The value is A!'),
            'B': (BuildContext context) => Text('The value is B!'),
          },
          fallbackBuilder: (BuildContext context) => Text('None of the cases matched!'),
        ),
      ],
    );
  }
}

Want a list of widgets?

If you want to conditionally render a list of widgets (List<Widget>) instead of a single one. Use Conditional.list() and ConditionalSwitch.list()!

Contributions

Feel free to contribute to this project.

If you find a bug or want a feature, but don't know how to fix/implement it, please fill an issue. If you fixed a bug or implemented a feature, please send a pull request.

Categorias

Repositório-fonte

Projetos que usam este pacote

Ainda não há dados.