Carregando Dados no ListView Com OnScrollListener e Volley no Android
(10518) (16)
CategoriasAndroid, Design, Protótipo
AutorVinícius Thiengo
Vídeo aulas186
Tempo15 horas
ExercíciosSim
CertificadoSim
CategoriaEngenharia de Software
Autor(es)Vaughn Vernon
EditoraAlta Books
Edição1ª
Ano2024
Páginas160
Tudo bem?
Na vídeo aula acima nós vamos estudar e praticar o popular:
Carregamento de conteúdos em uma lista Android assim que o final desta lista de itens é alcançado.
Esse algoritmo é também conhecido como "infinite scrolling" ou "pagination".
Aqui o foco será: carregar mais itens assim que o último item da lista está presente em tela.
Mas a lógica de negócio poderá ser ajustada por você de acordo com as necessidades de seu projeto de aplicativo Android.
Ou seja, é possível iniciar o carregamento de mais itens remotos a partir do penúltimo item em lista, por exemplo.
Note que estaremos utilizando os seguintes recursos (nativos e não nativos) Android para construir todo o algoritmo de carregamento de mais conteúdos remotos:
- ListView sendo o framework de lista para a apresentação dos conteúdos, itens;
- OnScrollListener para ouvir o scroll do ListView;
- Volley API para conexão remota com o backend Web e consequentemente envio e carregamento de dados;
- Universal Image Loader API para o carregamento de imagens remotas em ImageView;
- Componente visual ProgressBar para trabalhar como proxy. Ou seja, mostrar ao usuário que algo está sendo carregado (mais dados da Web) e que ele deve aguardar o final do carregamento.
Basicamente o algoritmo no lado Android se resume na utilização dos recursos acima.
Mas é imprescindível que você se esforce para conseguir entender todo o fluxo de carregamento de mais conteúdos de um backend Web.
Digo isso, pois hoje em dia eu utilizaria alguns outros recursos. Recursos mais modernos e recomendados pela própria comunidade de desenvolvedores Android.
E esses outros recursos ainda permitiriam conseguir o mesmo tipo de carregamento de conteúdo remoto.
Não tem porque ficar fazendo rodeios... eu utilizaria hoje os seguintes recursos:
- RecyclerView sendo o framework de lista;
- Listener de scroll do próprio RecyclerView;
- Retrofit API para conexão remota com o backend Web. Para mim, disparada a melhor API Android para conexões remotas;
- Picasso API para carregamento de imagens remotas;
- E continuaria com o ProgressBar sendo o proxy de carregamento de conteúdo.
Note que quando eu vinculo o ProgressBar ao proxy na verdade estou informando que é com o ProgressBar que estaremos implementando em projeto o Padrão Proxy.
Em resumo:
O Padrão Proxy é o popular "loading..." que aparece em inúmeros softwares e games por aí.
É este padrão que informa de maneira implícita que "alguma coisa está sendo carregada por de baixo dos panos devido à ação do usuário".
Bom, voltando ao conteúdo do projeto de exemplo...
... por isso é importante você entender todo o fluxo de carregamento de conteúdos no backend Web.
Pois assim será trivial utilizar esse mesmo fluxo já comum em aplicativos Android, porém com recursos mais avançados e atuais.
Um detalhe importante ainda sobre o fluxo do algoritmo do conteúdo desta vídeo aula:
Dê uma atenção especial também à flag isThereMore.
Pois é com ela que evitamos as tentativas desnecessárias de carregamento de mais conteúdo remoto quando na verdade já temos em aplicativo Android a informação de que não há mais conteúdo a ser carregado do backend Web.
Se você ignorar essa flag, será inevitável o consumo desnecessário da banda de Internet (3G, 4G, ...) do usuário de seu aplicativo... sem falar também do maior consumo de bateria, devido às conexões remotas desnecessárias.
Sobre o backend Web...
... este é todo desenvolvido em PHP (servidor Apache). Mas foi desenvolvido de uma maneira que você consiga entender que qualquer outra configuração de backend pode ser utilizada.
Configuração com outras linguagens de backend, por exemplo: Java, Python, Kotlin, Pearl, Ruby on Rails, ...
Então é isso.
Antes de finalizar deixo alguns bons links de outros artigos aqui do Blog, com vídeos, que lhe colocarão em dia com o que há de novo no desenvolvimento de aplicativos Android:
- Kotlin Android, Entendendo e Primeiro Projeto;
- Android Studio: Instalação, Configuração e Otimização;
- Android Mobile-Commerce, Apresentação e Protótipo do Projeto.
E caso você tenha o desejo de aprender a desenvolver apps Android, ou apenas evoluir nesta área, também com os conteúdos gratuitos do Blog, então não deixe de acessar o "Artigo Universidade Android":
E também não esqueça de se inscrever 📫 na lista de e-mails do Blog para receber os conteúdos de desenvolvimento Android em primeira mão... e também as versões em PDF desses conteúdos (versões em PDF são liberadas somente aos inscritos da lista de e-mails).
Se inscreva também no canal do Blog no YouTube para acompanhar as últimas novidades disponibilizadas em vídeo.
Surgindo dúvidas ou dicas, pode enviar abaixo na área de comentários que logo eu lhe retorno.
Obs. : o link para download dos projetos (Android e Web) apresentados em vídeo aula se encontra logo abaixo no artigo, na seção "Download".
Abraço.
AndroidX
Apesar do conteúdo sobre a "Carregamento de Mais Itens Remotos em Lista" ainda estar atual e ser importante para qualquer nível de desenvolvedor Android.
Apesar disso eu também recomendo, assim que finalizado o projeto em sua própria instalação de IDE, que você o migre para o AndroidX.
Algo que pode ser feito com poucos cliques, como apresentado no tutorial a seguir: Migrar para o AndroidX.
Fontes
Documentação oficial AbsListView.OnScrollListener Android
Utilizando BaseAdapter Para Personalização Completa da ListView
Parcelable no Android, Entendendo e Utilizando
Comentários Facebook