O slideshow foi denunciado.
Utilizamos seu perfil e dados de atividades no LinkedIn para personalizar e exibir anúncios mais relevantes. Altere suas preferências de anúncios quando desejar.

Tudo sobre listas no android

1.198 visualizações

Publicada em

Apresentação do meet-up 29 de android do GDG São Paulo sobre listas em Android.

Publicada em: Celular
  • Seja o primeiro a comentar

Tudo sobre listas no android

  1. 1. Tudo sobre listas em Android Paula Caroline da Rosa Desenvolvedora Android
  2. 2. Listas “É uma view group que disponibiliza uma lista de itens escroláveis” (Android developers) Lista Simples Lista Customizada AdapterView
  3. 3. Outras AdapterViews • AdapterView é uma view que precisa de um adapter Listview GridView Spinner
  4. 4. Adapter • Adapter é responsável por fazer uma ponte entre um conjunto de dados a ser mostrado e a Adapter View (listView, gridView, spinner) • Cada item da lista passa a ser uma pequena view (linha); • O controle é feito através da posição dos itens da lista;
  5. 5. Criando uma lista simples • Passo 1: O layout ▫ Adicionar uma tag ListView dentro de um layout.
  6. 6. Criando uma lista simples • Passo 2: A activity ▫ Encontrar o id que referencia a lista no layout; ▫ Criar um adapter, passando os parâmetros context, layout e items ▫ Setar o adapter na lista passando como parâmetro o adapter criado;
  7. 7. Criando uma lista simples • Prós ▫ Fácil de implementar; ▫ Serve como protótipo; ▫ Lista estática textos; • Contras ▫ Não recicla a view; ▫ Só aceita textos;
  8. 8. Como uma lista é carregada Scroll Para Cima Reciclando a view
  9. 9. ViewHolder • Armazena cada componente (view) dentro de uma tag. • Previne que o método findViewById seja chamado a cada vez que for utilizado o scroll e a view ficar ativa • Aumenta performance da lista, permitindo que seja “scrolada” de forma suave
  10. 10. Criando uma lista customizada • Cria-se um layout representando como será cada linha da lista (custom_layout.xml) • Cria uma tag do tipo ListView dentro do layout principal (activity_main.xml) • Utiliza o adapter para transformar o conteúdo de cada linha em uma lista customizada
  11. 11. Criando uma lista customizada • Layout (custom_layout.xml)
  12. 12. Criando uma lista customizada • Adapter – extendendo de BaseAdapter • Métodos:  getCount() – Quantos itens serão representados por este adapter.  getItem(int position) – retorna o dado que está associado com a posição atual  getItemId(int position) – retorna o id da linha associada com a posição específica da lista  getView(int position, View convertView, ViewGroup parent) – retorna a view que corresponde ao dado na posição atual
  13. 13. Criando uma lista customizada • Estende o Adapter da classe BaseAdapter
  14. 14. Criando uma lista customizada • Métodos getcount, getItem e getItemId
  15. 15. Criando uma lista customizada • Implementa o método getView
  16. 16. Criando uma lista customizada • Layout da lista (activity_main.xml)
  17. 17. Criando uma lista customizada • Activity – setando os itens no adapter (MainActivity.java)
  18. 18. Criando uma lista customizada
  19. 19. Outras formas • Extender a activity de ListActivity • Utilizando um CursorLoader (dado do banco) • Utilizando uma Asynctask com ViewHolder
  20. 20. Atualizando a lista • Use o método notifyDataSetChanged() ao mudar a lista de itens.
  21. 21. Lidando com eventos • Evento de click – implementando a interface AdapterView.OnItemClickListener • Evento de usando a classe anônima que implementa a interface
  22. 22. Lidando com eventos • Evento de click longo
  23. 23. RecyclerView • Criada na versão 5.0 do Android (Lollipop) • É um container que exibe dados que podem ser scrolados de forma eficiente • Faz parte das libs de supporte
  24. 24. RecyclerView LinearLayoutManager GridLayoutManager StaggeredGridLayoutManager
  25. 25. LayoutManager • Posiciona os itens dentro de uma RecyclerView • Determina quando as views deverão ser reaproveitadas • Pode ser customizado (extendendo RecyclerView.LayoutManager), a fim de melhorias de performance e desempenho
  26. 26. • No arquivo build.gradle, importar as dependências: • Assim como na ListView, abra uma tag no layout chamando RecyclerView
  27. 27. Layout do item usando cardview • Abra uma tag no layout usando CardView
  28. 28. Criando o adapter • Extenda o adapter de RecyclerView.Adapter<MeuAdapter.ViewHolder> • Crie o ViewHolder
  29. 29. Criando o adapter • Implementando o método onCreateViewHolder ▫ Infla-se o layout ▫ Cria-se uma instância da classe ViewHolder passando a view que foi criada ▫ Retorna o ViewHolder com a view já inflada
  30. 30. Criando o adapter • Implementando o método onBindViewHolder ▫ Chamado pelo LayoutManager ▫ Substitui o conteúdo da view • Retornando o tamanho da lista
  31. 31. Criando a activity • Setando adapter na activity
  32. 32. RecyclerView
  33. 33. Lidando com eventos • Sem OnItemClickListener (#mimimi ) • Uma forma: seta o clickListener na view (do construtor do ViewHolder criado)
  34. 34. Outras Vantagens • Otimização de performance; • Encontrar itens visíveis (LinearLayoutManager) ▫ findFirstVisibleItemPosition/findLast(...) • Informar adição/remoção de itens separadamente ▫ notifyItemRemoved(pos)/notifyItemInserted(pos) • ItemDecorator e ItemAnimator  • Controle de reciclagem (scrap heap e recycler pool)
  35. 35. Contato • Twitter: @_paulacr • Blog: http://paulacr.net • E-mail: paula.mecatronica@gmail.com • Exemplos: ▫ https://github.com/paulacr/CriandoListaSimples ▫ https://github.com/paulacr/CriandoListaCustomizada ▫ https://github.com/paulacr/CriandoRecyclerView • Mastering RecyclerView (Dave Smith) - https://www.youtube.com/watch?v=-C5I1DAviJ8

×