Snackbar é uma forma de notificação semelhante ao Toast, com uma implementação distinta e opções de configuração adicionais.
A seguir, descreverei uma implementação simples e algumas configurações essenciais.
No exemplo abaixo, criamos uma instância de um botão usando OnClickListener()
, e a ação do clique aciona o método Snackbar.make()
:
Snackbar.make(view, "F", Snackbar.LENGTH_LONG).show();
O Snackbar recebe três parâmetros:
view
: Vem doOnClickListener
e representa a visão à qual a Snackbar está associada.charSequence
: Uma mensagem ou texto a ser exibido na Snackbar.- Duração: Pode ser
Snackbar.LENGTH_LONG
,Snackbar.LENGTH_SHORT
, ouSnackbar.LENGTH_INDEFINITE
. A duraçãoINDEFINITE
mantém a Snackbar visível até que o usuário a descarte manualmente.
Por último, mas igualmente crucial, o método .show()
é empregado na Snackbar. Este método desempenha a função de tornar a Snackbar visível na tela.
LENGTH_INDEFINITE
No cenário apresentado, é crucial criar uma ação para permitir a remoção da Snackbar da visualização. Essa tarefa pode ser realizada de duas maneiras. A primeira envolve o uso do método .dismiss()
, mas para isso, é necessário ter instanciado a Snackbar em uma variável do mesmo tipo.
A segunda abordagem consiste em encadear um método antes do .show()
, o .setAction()
. Este método requer dois parâmetros: um CharSequence
e um novo OnClickListener
.
O método é, portanto, construído da seguinte forma:
setbuttonSnack.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { Snackbar.make(view, "F", Snackbar.LENGTH_INDEFINITE).setAction("Confirmar", new View.OnClickListener() { @Override public void onClick(View v) { } }).show(); } }
A Snackbar apresentará o CharSequence
como um botão, e ao ser pressionado, removerá a Snackbar da tela. É importante notar que o OnClickListener
da setAction
pode ser empregado para invocar um método predefinido, como salvar uma senha ou confirmar o envio de um relatório.