Android Componentes

Como Usar SnackBar no Android com Kotlin

Tiago Aguiar Desenvolvedor ios

Escrito por Tiago Aguiar

em 13/01/2023

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.:

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:

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:

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():

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():

snackbar.setTextColor(Color.WHITE)

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

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:

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.

Me siga nas redes sociais:


Artigos Relacionados

Como Instalar o Android Studio no Windows

Como Instalar O Android Studio No Windows

Android Studio é a ferramenta oficial desenvolvida criado pelo Google com recursos para criar aplicativos Android...

Aprender a Programar Para Android do Zero: Primeiros Passos

Aprender A Programar Para Android Do Zero: Primeiros Passos

Acredite ou não, aprender a programar aplicativos para Android é de longe uma das coisas mais divertidas que pode...

WebView Android: Transforme Sites e Blogs em Aplicativos

Webview Android: Transforme Sites E Blogs Em Aplicativos

A WebView é um componente do sistema Android que permite exibir conteúdos de sites responsivos e blogs dentro de ...

Splash Screen Android - O Jeito Mais Simple e Eficaz

Splash Screen Android - O Jeito Mais Simple E Eficaz

Aprenda a criar uma Splash Screen no Android só com XML