Como Usar SnackBar no Android com Kotlin
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.
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
eSnackbar.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.