Tiago Aguiar

Como Usar SnackBar no Android com Kotlin

avatar
Preview Image

Snackbars são uma ótima maneira de fornecer feedback breve aos usuários no Android. Eles são leves e aparecem na parte inferior da tela, tornando-os fáceis de acessar e dispensar.

Neste artigo, vamos aprender como criar e usar snackbars em Kotlin.

snackbar photo

Primeiro, precisamos garantir que temos a dependência do Material Components no nosso arquivo build.gradle que nos dará acesso aos componentes MaterialDesign, incluindo o Snackbar.:

1
implementation 'com.google.android.material:material:1.7.0'

Em seguida, podemos criar um Snackbar chamando o método make() na classe Snackbar e passando a visualização atual que está executando como o primeiro argumento. Por exemplo:

1
Snackbar.make(findViewById(android.R.id.content), "Olá, Snackbar!", Snackbar.LENGTH_SHORT).show()

Neste exemplo, estamos passando uma visualização, o texto “Olá, Snackbar!” e a duração do snackbar (neste caso, Snackbar.LENGTH_SHORT).

Existem mais duas durações como Snackbar.LENGTH_LONG e Snackbar.LENGTH_INDEFINITE.

Customizando a SnackBar

Para adicionar uma ação ao Snackbar, podemos usar o método setAction(), que recebe dois argumentos: o texto a ser exibido no botão de ação e um listener a ser chamado quando o botão for pressionado:

1
2
3
4
5
snackbar.setAction(android.R.string.ok) {
	// aqui acontece a ação!
	val intent = Intent(this@MainActivity, MainActivity::class.java)
	startActivity(intent)
}

Para mudar a cor de fundo do Snackbar, podemos usar o método setBackgroundTint():

1
2
3
snackbar.setBackgroundTint(ContextCompat.getColor(this, R.color.teal_700))
// ou
snackbar.setBackgroundTint(Color.RED)

Também podemos mudar a cor do texto do Snackbar usando o método setTextColor():

1
snackbar.setTextColor(Color.WHITE)

Também podemos mudar a cor do texto de ação da Snackbar usando o método setActionTextColor():

1
snackbar.setActionTextColor(ColorStateList.valueOf(ContextCompat.getColor(this, R.color.teal_700)))

Criando uma SnackBar Interativa

No exemplo abaixo, estamos criando um Snackbar que exibe o texto “Carregando…” e não tem duração definida (Snackbar.LENGTH_INDEFINITE). Também adicionamos um botão de ação com o texto “Cancelar” que dispensa o Snackbar quando o usuário pressionar o botão.

Dessa maneira, podemos interagir com o usuário, veja:

1
2
3
4
5
val snackbar = Snackbar.make(view, "Carregando...", Snackbar.LENGTH_INDEFINITE)
snackbar.setAction("Cancelar") {
	snackbar.dismiss()
}
snackbar.show()

Observe que ao usar o snackbar indefinido, você deve ter cuidado em dispensá-los programaticamente ou fornecer uma maneira para o usuário dispensá-lo, caso contrário ele ficará na tela indefinidamente.

Além disso, se você quiser mudar a cor do Snackbar, pode usar o método setBackgroundTint() e setTextColor() para mudar a cor do texto do Snackbar, assim como no exemplo anterior.

Recapitulando

A Snackbar é uma ótima maneira de fornecer feedback aos usuários de maneira não intrusiva. Ele é leve, fácil de usar e personalizável. Com os exemplos acima, você pode criar e personalizar um Snackbar em Kotlin.

Vou deixar um tutorial da SnackBar em video onde mostramos boas práticas de usá-lo em conjunto com componentes como o Floating Action Button.

Maravilha! Em breve você receberá conteúdos exclusivos por e-mail. Continue lendo os artigos para aprender mais sobre programação.