Tecnologia do Blogger.
RSS

Re: [androidbrasil-dev] Reaproveitar view num ListView

A propria implementação da ListView já implementa o reuso de Views, que é o convertView que você recebe no getView().


Para melhor ainda mais a performance normalmente se usa o Pattern do ViewHolder, para não precisar fazer o findViewById() todas vezes.

Para utiliza-lo em uma lista com mais de um layout você precisa implementar tambem o 

getViewTypeCount() e getItemViewType(position) no adapter, para garantir que o convertView que você receberá é do de layout tipo certo 

Lúcio Maciel
luciofm@gmail.com


2011/11/11 Elison Lusvardi <elisonj@gmail.com>
Fala caras, tudo joia?

Estou com um problema num listView de nossa aplicação.
Cada item do listView pode ser formado por widgets diferentes, alguns possuem imagens, outros o layout é diferente, outros possuem botões, etc.

Todos eles tem ações de onClick ou onLongClick - sendo no próprio widget ou em algum botão.

O desempenho então pra montar essa listView acaba sendo bem custoso pra criar cada elemento.

Resolvi então armazenar esses itens em um HashMap<Key, MyWidget> e sempre que for criar um novo item, verificar se ele ja está inserido nesse meu "cache" através da Key.
Até ai tudo bem, ele funciona de modo a buscar esses itens, e reaproveita-los; só que quando vou executar alguma ação com eles, geralmente não funciona.

Ele não detecta mais o onClick, o onLongClick até que ele esteja fora da area de visualização no listView. Por ex.  eu clico na foto para abrir ela e não acontece nada. Mas quando eu dou um scroll pra cima ou pra baixo, qdo essa foto sai da minha vista, a app exibe a foto com o visualizador.  Se eu aperto umas 3 ou 4 vezes seguidas, quando eu mover o Scroll, o visualizador vai ser aberto 3 ou 4 vezes..   =/

Alguém tem alguma idéia do por que isso ocorre?

valews!





--
Elison José Gracite Lusvardi

  • Digg
  • Del.icio.us
  • StumbleUpon
  • Reddit
  • RSS

0 comentários:

Postar um comentário