SwipeRefreshLayout e Snackbar, Material Design Android - Parte 9

Receba em primeira mão, e com prioridade, os conteúdos Android exclusivos do Blog. Você receberá um email de confirmação. Somente depois de confirma-lo é que poderei lhe enviar os conteúdos exclusivos.

Email inválido.
Blog /Android /SwipeRefreshLayout e Snackbar, Material Design Android - Parte 9

SwipeRefreshLayout e Snackbar, Material Design Android - Parte 9

Vinícius Thiengo
(4540) (19) (2)
Go-ahead
"Uma vez que nós aceitamos nossos limites, nós vamos além deles."
Albert Einstein
Kotlin Android
Capa do livro Desenvolvedor Kotlin Android - Bibliotecas para o dia a dia
TítuloDesenvolvedor Kotlin Android - Bibliotecas para o dia a dia
CategoriasAndroid, Kotlin
AutorVinícius Thiengo
Edição
Capítulos19
Páginas1035
Acessar Livro
Treinamento Oficial
Android: Prototipagem Profissional de Aplicativos
CursoAndroid: Prototipagem Profissional de Aplicativos
CategoriaAndroid
InstrutorVinícius Thiengo
NívelTodos os níveis
Vídeo aulas186
PlataformaUdemy
Acessar Curso
Receitas Android
Capa do livro Receitas Para Desenvolvedores Android
TítuloReceitas Para Desenvolvedores Android
CategoriaDesenvolvimento Android
AutorVinícius Thiengo
Edição
Ano2017
Capítulos20
Páginas936
Acessar Livro
Código Limpo
Capa do livro Refatorando Para Programas Limpos
TítuloRefatorando Para Programas Limpos
CategoriaEngenharia de Software
AutorVinícius Thiengo
Edição
Ano2017
Capítulos46
Páginas599
Acessar Livro
Quer aprender a programar para Android? Acesse abaixo o curso gratuito no Blog.
Conteúdo Exclusivo
Receba em primeira mão, e com prioridade, os conteúdos Android exclusivos do Blog.
Email inválido

Opa, blz?

Nesse vídeo dou continuidade a série de vídeos sobre o Material Design no Android, dessa vez abordando duas entidades, SwipeRefreshLayout e Snackbar no Android. O SwipeRefreshLayout é uma forma leve e simples de informar ao user que algo está acontecendo no background da APP, no caso o carregamento de novo conteúdo ou da atualização do conteúdo já apresentado na tela. Bom ficar atento que não utilizamos o Swipe no meio ou no bottom do layout, sempre no topo. O SwipeRefreshLayout já vem incluso na lib de support-v4. Note que enquanto não é implementado um script de conexão para obtermos os dados de um server Web vou continuar colocando scripts locais de inserção de dados para simular as entidades. porém a migração é simples e envolvendo codificação apenas para a lib de conexão.

O Snackbar é um padrão de notificação do Material Design no Android. Muito similar a lib Crouton, porém com espaçamentos no padrão do Material Design. Diferente do SwipeRefreshLayout o Snackbar não tem já uma view pronta para ser utilizada, no caso utilizamos alguma das libs disponíveis por terceiros ou montamos a nossa. No vídeo utilizei a lib nispok.snackbar que além de fácil foi a mais customizável que encontrei. Note que com a apresentação do Snackbar, segundo o guideline do Material Design, nós não podemos remover nem mesmo sobrepor o FloatingActionButton e sim move-lo para cima, no caso utilize o ObjectAnimator que é um conteúdo já abordado aqui no Blog. Bom, sem mais delongas vou deixar você assistir ao vídeo.

O link para download do projeto se encontra logo abaixo no post.

Segue links dos vídeos que podem ajudar no melhor entendimento desse vídeo:

Fonts Personalizadas no Android Com a Classe Typeface

ObjectAnimator no Android, Aplicando Efeitos nos Componentes Visuais

Segue link da PlayList da série Material Design no Android:

PlayList Material Design Android

Segue links das páginas apresentadas no vídeo:

Página do Snackbar e Toast no guideline do Material Design Android

Página do SwipeRefreshLayout no guideline do Material Design Android

Página do SwipeRefreshLayout no site de documentação do Android

Página da lib nispok.snackbar no GitHub

Vlw

 

Receba em primeira mão, e com prioridade, os conteúdos Android exclusivos do Blog.
Email inválido

Relacionado

Utilizando NavigationDrawer, Material Design Android - Parte 5Utilizando NavigationDrawer, Material Design Android - Parte 5Android
FloatingActionButton Com Três Diferentes Libs, Material Design Android - Parte 6FloatingActionButton Com Três Diferentes Libs, Material Design Android - Parte 6Android
Material Dialog, Correção Bug StatusBar e Ações nos Fragments. Material Design Android - Parte 7Material Dialog, Correção Bug StatusBar e Ações nos Fragments. Material Design Android - Parte 7Android
Sliding Tabs Toolbar, Material Design Android - Parte 8Sliding Tabs Toolbar, Material Design Android - Parte 8Android

Compartilhar

Comentários Facebook

Comentários Blog (19)

Para código / script, coloque entre [code] e [/code] para receber marcação especifica.
Forneça seu nome válido.
Forneça seu email válido.
Forneça o comentário.
Enviando, aguarde...
02/04/2017
Boa tarde professor olha eu novamente dando trabalho para o senhor! Estou aqui em meu novo vício, estudar, estudar, estudar. Tenho novamente uma duvida, no meu caso eu estou abrindo uma página internet dentro de uma webview, eu vou para um subLink mas quando dou refresh ele volta para primeira página como dar o refresh ná pagina atual que estou sem que a mesma volte para o inicio?
Responder
Vinícius Thiengo (0) (0)
08/04/2017
Alan, tudo bem?

Como está sendo o seu refresh? Está recarregando o WebView via loadUrl() novamente? Ou está dando um refresh como em um browser mobile, via refresh button?

Essa última opção não deveria causar inconsistências. Abraço.
Responder
laube.vinicius (1) (0)
20/08/2016
E aê Thiengo Blz? Sobre o SnackBar, estou tendo um probleminha quando clico em um botão para salvar os dados no Faribase eu uso o SnackBar para informar que os dados foram salvos com sucesso e depois dou um finish() para fechar a tela daí o SnackBar só pisca na tela, estou usando a view do botão que recebeu o clique será esse o problema?? Já que quando dou um finish () ele vai para outra activity. Se for, como faço para resolver esse problema?

Aguardando mais vídeos do Faribase que estão me ajudando muito.
Responder
Vinícius Thiengo (2) (0)
20/08/2016
Fala Laube, blz?
Provavelmente é esse o problema. Faça o seguinte, somente para testes, antes de invocar o método finish() coloque uma linha de código como:

SystemClock.sleep(2000);

Veja se assim o snack para de somente piscar. Caso sim, então o problema é a View vinculada a ele. Dessa forma poderá continuar com o sleep() ou até mesmo colocar o snack na Activity que voltará para o foreground. Abraço
Responder
laube.vinicius (1) (0)
23/08/2016
Valeu! O problema era a view mesmo, mas não consegui uma forma de fazer o SnackBar funcionar agora estou usando o thoast mesmo, eu queria o SnackBar pois acho que ele dá um visual melhor a app do que o thoast.
Responder
17/01/2016
Excelente trabalho, Thiengo vou utilizar esse app de exemplo. Possuo um website já com registros no banco de dados, de imagens. Como utilizo nesse app? Substituindo os carros. Diga apenas o caminho das pedras que me viro...rs
Responder
Vinícius Thiengo (0) (0)
18/01/2016
Fala Patrick, blz?
Tem que primeiro realizar a ligação com seu servidor Web para obter os dados de sua base de dados remota.

Nesse vídeo (http://www.thiengo.com.br/volley-gson-e-retrypolicy-em-material-design-android-serie-app ) é realizada essa ligação.

Depois é no modelo convencional Web, acessar a base de dados e retornar os dados, mas retorne no formato JSON. Abraço
Responder
Vinícius Thiengo (0) (0)
18/01/2016
Se possível, utilize o Retrofit 2.0 (http://www.thiengo.com.br/library-retrofit-2-no-android ) ao invés do Volley, pois ele é mais eficiente.
Responder
09/10/2015
Parabéns Thiengo pelo seu excelente trabalho !

seus videos e projetos me auxiliaram muito na criação nos meus primeiros apk !

Que esse seu excelente trabalho continue por muito tempo !
Responder
BeargLincoln (1) (0)
01/06/2015
Fal Thiengo blz? parabens pelo video imprecionate a tua forma de lecionar... ai tenho uma duvida, quando o snackbar esta visivel move o meu fab para cima e quando desaparece o fab nao volta como fazer com que ele volte a posicao normal?
Responder
Vinícius Thiengo (1) (0)
02/06/2015
Fala Lincoln, blz sim.
Ao invés de utilizar somente o onDismissed() do EventListenerAdapter, utilize o mesmo código desse método tb no método onDismiss(), vai funcionar sem problemas. Abraço
Responder
Aricelio de Souza (1) (0)
28/05/2015
Fala Thiengo blz? Parabéns pelo vídeo! Mto bom. Implementei a SwipeRefreshLayout em um app meu que baixa informações de um RSS. Minha dúvida é a seguinte: Tem como eu fazer um cache com as informações que são baixadas do RSS? Você tem algum vídeo ensinando a fazer isso? Abraços.
Responder
Vinícius Thiengo (2) (1)
29/05/2015
Fala Aricelio, blz sim.
Coloque os dados em um SQLite, faço isso no APP do Blog, assim quando não há conexão Web ou os dados atuais no SQLite são os baixados a pouco tempo, nesses casos carrego tudo do SQLite, local e rápido. Tenho um vídeo sobre ele (http://www.thiengo.com.br/sqlite-no-android-entendendo-e-utilizando ), de repente lhe ajuda a entender a sintaxe, pois vai envolver mt mais lógica. Abraço
Responder
Marcelo Marim (1) (1)
26/05/2015
Show de bola!!!
Responder
Alessandro (2) (0)
26/05/2015
blz cara. Antes de mais nada, excelente vídeo, estou aprendendo muito com eles.

Viu é possível forçar a execução do SwipeRefreshLayout? Tipo, ao usuário clicar em um botão.

Abraço
Responder
Vinícius Thiengo (1) (0)
27/05/2015
Fala Alessandro. blz sim. Com o setRefreshing(true) é possível, ele somente não tem aquele efeito de descer quando vamos com o dedo. Abraço
Responder
Alessandro Ceron (2) (0)
27/05/2015
Blz Vinícius. Eu tinha tentado esse comando, mas pelo que percebi ele executa apenas o efeito do carregamento, mas n chama os métodos de carregar e depois desaparecer o loader. Estou pensando em chamar esse método, depois chamar o método para carregar e depois, chamar o método para esconder o loader. Valeu pela ajuda. Abração
Responder
Vinícius Thiengo (1) (0)
27/05/2015
Show de bola, não parei para ver se o listener estava sendo trigado ou não, nesse caso vc pode colocar todo o conteúdo que está no Listener dentro de um método separado, sendo assim, toda vez que for chamar o Sipe sem o listener vc chama ele, chama esse método e então o remove no fim do processamento, esse método será utilizado dentro do listener tb, sendo assim vc não terá código repetido. Abraço
Responder
Alessandro Ceron (0) (0)
27/05/2015
Funcionou perfeitamente assim. Valeu Vinícius, abraço
Responder