A Support Design Library chegou a pouco tempo, trazendo diversos componentes do Material Design que até então não possuiam implementação oficial. Dentre eles a SnackBar, componente semelhante ao Toast mas que promete trazer várias vantagens.

A Support Design Library é uma biblioteca do Android que foi lançada recentemente. Ela é composta por diversos componentes gráficos do Material Design que ainda não tinham sido implementados oficialmente. A SnackBar é um deles.

Conhecendo o componente

A SnackBar é uma barra informativa que é exibida na parte inferior da tela. É bem semelhante ao velho e conhecido Toast, mas possui algumas vantagens em relação a ele:

  • É possível exibir ao lado da mensagem um botão de ação. Bastante útil quando se deseja fornecer ao usuário opção de interação (“Tentar novamente”,”Desfazer”,”Reconectar”, etc.);

  • Como ela é inserida no layout da página, pode-se, ao deslizar o dedo em cima dela, sumir com a barra antes mesmo que seu tempo de exibição acabe;

    Abaixo segue um video demonstrativo desse componente:



Implementando

Primeiramente, para que se possa utilizar a SnackBar é necessário inserir a seguinte dependência no seu build.gradle:

1
compile 'com.android.support:design:22.2.1'

Feito isso, vamos à implementação, que é muito simples (Lembra a do Toast):

1
2
3
4
5
6
7
8
9
Snackbar.make(snackBarPositionLayout,"Seu texto aqui!",Snackbar.LENGTH_LONG).setAction(
"Desfazer", new View.OnClickListener() {
@Override
public void onClick(View view) {
}
}
).show();

Resultado:

SnackBar

O primeiro parâmetro é uma View onde a snackbar vai ser exibida (ela é posicionada na parte inferior dessa View). O segundo é o texto a ser exibido, seguido no terceiro parâmetro do tempo de exibição.
O setAction() define a ação a ser realizada, tendo como parâmetros o nome da ação (que será exibida ao lado do texto) e o evento de click que irá disprar a ação. Lembrando que o método setAction() é opcional.
Por fim tem-se o método show() para que o componente seja exibido (nunca esqueça desse método).

Com essas poucas linhas de código é possivel utilizar esse novo componente Android e usufruir de suas vantagens. Eu particularmente já estou trocando os meus velhos Toasts por ele.

Tablets

Para que a snackBar seja exibida corretamente em Tablets, é necessário que a sua View de referência (primeiro parâmetro do método make()) seja um CoordinatorLayout. Mais detalhes sobre esse Layout será visto em outra postagem.

1
2
3
4
5
6
7
<android.support.design.widget.CoordinatorLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_alignParentBottom="true"
android:layout_centerHorizontal="true"
android:id="@+id/snackbarPosition">
</android.support.design.widget.CoordinatorLayout>

E com isso finalizamos os conceitos básicos da utilização da SnackBar.

Um exemplo de código pode ser encontrado aqui: GitHub
Deixo também o link para as recomendações da Google sobre o uso desse componente: Material Design

E caso surjam dúvidas ou sugestões, é só deixar o seu comentário. ^^
Até mais.

Referências: Android Developers Blog,Inthecheesefactor,Androidbycode