Aumente o desempenho do Android ViewPager

Estou criando uma aplicação android com destino no 2.2. Eu ainda quero usar o ViewPager fornecido no android.support-v4.jar.

Estou usando um FragmentPagerAdapter em combinação com o Fragment para exibir o conteúdo. Cada fragmento contém um WebView, exibindo alguns dados em html.

A rolagem de um WebView para cima e para baixo funciona muito bem, mas o deslizamento entre as páginas do ViewPager se comporta de forma muito irregular e não é tão suave quanto a rolagem do WebView.

Existe alguma maneira de aumentar o desempenho de rolagem do ViewPager, talvez algo como o ConvertView do BaseAdapter?

Eu estou supondo que eu poderia carregar o URL em um segmento de fundo, mas pelo que eu ouvi que não é a melhor prática.

Qualquer sugestão seria ótimo, obrigado.

0

2 Respostas

Eu percebi que você poderia usar o

viewPager.setOffscreenPageLimit(items.size());

manter todos os itens pré-carregados na memória e evitar o desempenho "freeze/laggy" durante a rolagem.

0
adicionado
Você poderia, tudo depende de quantos itens você terá e como a "UI pesada" de cada exibição é. O que eu fiz para garantir que isso não acontecesse era codificar o tamanho dos itens para algo muito maior do que seria realista para o meu aplicativo.
adicionado o autor Slickelito, fonte
Esta pode ser a pior solução que encontrei. Você NÃO quer carregar todas as páginas na memória, já que a IU exige muito mais memória do que simplesmente manter uma lista de POJOs na memória. Em vez disso, algo mais está causando lentidão no seu carregamento e, provavelmente, considera avaliar como você está criando a interface do usuário. Você pode querer considerar a reciclagem de páginas.
adicionado o autor agrosner, fonte
Apenas uma pergunta, talvez uma pergunta idiota: não seria muito pesado o pré-carregamento de todos os itens do viewpager?
adicionado o autor andrea.rinaldi, fonte
Quer dizer, eu não poderia receber nenhum erro como OutOfMemory ou similar?
adicionado o autor andrea.rinaldi, fonte
Eu entendo .. Eu disse essas coisas porque eu estou começando um aplicativo que certamente terá imagens pesadas (alta qualidade, borrão, coisas como esta) para carregar em cada fragmento do ViewPager .. Mas, eu vou gerenciá-los como precisa ser feito :)
adicionado o autor andrea.rinaldi, fonte

Você deve considerar a possibilidade de reutilizar os Fragments , fornecendo algum método para reutilizar fragmentos existentes no ViewPager e preencher ou atualizar sua UI com os novos dados.

0
adicionado