DEV Community

👨‍💻 Lucas Silva
👨‍💻 Lucas Silva

Posted on

 

Snackbars em Flutter

Decidi voltar a escrever após um looooongo hiato devido ao cansaço da pandemia. É bastante provável que eu tenha me esquecido de regras gramaticais, ortografia etc, então esse texto sera bem curto 😅

Exemplo de snackbar

Por que usar uma snackbar ?

Conforme a definição dada no site do Material Design, "Snackbars informam aos usuários que sobre um processo que a aplicação realizou ou realizará. Elas aparecem temporariamente na parte inferior da tela. Não interrompem a UX e não requerem interações para desaparecerem".
É possível encontrá-las em diversos contextos onde a pessoa usuária apaga um item e uma snackbar mostra a opção de desfazer a ação.

Implementando uma snackbar

Sem mais delongas, vamos para a parte de código. Implementar este widget pode ser tão simples quanto

Scaffold.of(context).showSnackBar(
  SnackBar(
    content: Text("Oi ! Sou uma snackbar")
   )
);
Enter fullscreen mode Exit fullscreen mode

ponto de atenção: o contexto passado deve ser filho de um widget Scaffold
Snackbar criada pelo código acima

Customizando o widget

  • content: o conteúdo primário da snackbar. Recebe um widget como parâmetro
content: Text("Oi! Não deixe de curtir esta postagem!"),
Enter fullscreen mode Exit fullscreen mode
  • backgroundColor: a cor de fundo do widget. Caso não seja especificada, utilizará a cor de ThemeData.snackBarTheme.backgroundColor. ou um tom escuro.
backgroundColor: Colors.blue,
Enter fullscreen mode Exit fullscreen mode
  • elevation: define a elevação do widget. Basicamente, quanto maior o valor, maior a sombra na parte inferior da barra.
elevation: 100.0,
Enter fullscreen mode Exit fullscreen mode
  • shape: define a forma da snackbar. É possível torná-la arredondada utilizando RoundedRectangleBorder:
shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(100)),
Enter fullscreen mode Exit fullscreen mode

Borda arredondada

  • behavior: define como a snackbar deve aparecer, principalmente quando há FloatingActionButton ou BottomNavigationBar. O código abaixo faz com que o widget levante FloatingActionButtons e apareça acima da BottomNavigationBar
behavior: SnackBarBehavior.fixed
Enter fullscreen mode Exit fullscreen mode

SnackBarBehavior.fixed

Já o outro comportamento faz com que a snackbar apareça acima desses widgets e não preencha toda a tela na horizontal:

behavior: SnackBarBehavior.floating
Enter fullscreen mode Exit fullscreen mode

SnackBarBehavior.floating

  • action: uma ação que o usuário pode realizar interagindo com a snackbar. Geralmente utilizada com "Desfazer" ou algo do tipo.
action: SnackBarAction(
  textColor: Colors.white,
  label: "Desfazer",
  onPressed: () { // insira uma função aqui } 
),
Enter fullscreen mode Exit fullscreen mode

SnackBarAction

  • duration: o tempo no qual a snackbar aparecerá na tela. O padrão é 4s. Para mudar:
duration: Duration(seconds: 2),
Enter fullscreen mode Exit fullscreen mode
  • onVisible: chama uma função assim que o widget aparece na tela:
onVisible: () {// insira uma função aqui }
Enter fullscreen mode Exit fullscreen mode

Por fim, há também a propriedade "animation", a qual merece um artigo exclusivo! Caso tenha interesse, me avise ali no Twitter que eu escrevo um artigo sobre o assunto!

Valeu por ter lido até aqui ! Até a próxima postagem 😊

Top comments (0)

16 Libraries You Should Know as a React Developer

Being a modern React developer is not about knowing just React itself. To stay competitive, it is highly recommended to explore the whole ecosystem. This article contains some of the most useful React component libraries to speed up your developer workflow.