ViewPager2
| Atualização mais recente | Versão estável | Versão candidata a lançamento | Versão Beta | Versão Alfa |
|---|---|---|---|---|
| 14 de maio de 2024 | 1.1.0 | - | - | - |
Dependências do AndroidX
Para usar ViewPager2, adicione a seguinte dependência do AndroidX ao arquivo build.gradle do projeto:
Groovy
dependencies { implementation "androidx.viewpager2:viewpager2:1.1.0" }
Kotlin
dependencies { implementation("androidx.viewpager2:viewpager2:1.1.0") }
Feedback
Seu feedback ajuda a melhorar o Jetpack. Avise se você descobrir novos problemas ou tiver ideias para melhorar esta biblioteca. Consulte os problemas conhecidos nesta biblioteca antes de criar um novo. Adicione seu voto a um problema clicando no botão de estrela.
Consulte a documentação do Issue Tracker para saber mais.
Versão 1.1.0
Versão 1.1.0
14 de maio de 2024
Lançamento de androidx.viewpager2:viewpager2:1.1.0. A versão 1.1.0 contém estas confirmações.
Mudanças importantes desde a versão 1.0.0
- Correção de falhas ao usar com RecyclerView
1.3.1-rc01ou mais recente. ViewPager2agora preenche corretamente aCollectionInfoe aCollectionItemInfoque a RecyclerView1.2.0-alpha02e versões mais recentes não preenchem mais por padrão- A interface
FragmentTransactionCallbackfoi incluída para detectar mudanças no ciclo de vida do fragmento que ocorrem noFragmentStateAdapter - Correção do problema
FragmentStateAdaptercom a visibilidade inicial do menu de fragmentos ao adicionar um fragmento aoFragmentManager. - Correção no envio de encartes de janela: todas as páginas agora recebem os mesmos encartes. Devido à forma como os
WindowInsetssão enviados em versões antigas da API (anteriores à API 30), que podem impedir que os encartes estejam disponíveis para visualizações irmãs, você precisa ativar essa correção usandoWindowInsetsApplier.install(viewPager2)se quiser aplicar encartes em dispositivos com a API anterior ao 30.
Versão 1.1.0-rc01
1o de maio de 2024
Lançamento de androidx.viewpager2:viewpager2:1.1.0-rc01 sem mudanças significativas desde a versão 1.1.0-beta02. A versão 1.1.0-rc01 contém estas confirmações.
Versão 1.1.0-beta02
24 de maio de 2023
Lançamento de androidx.viewpager2:viewpager2:1.1.0-beta02. A versão 1.1.0-beta02 contém estas confirmações.
Mudanças na API
- Foram adicionados callbacks de salvamento de estado de fragmentos a
FragmentTransactionCallback. (I45b90). - A
ViewPager2não tenta mais corrigir o envio deWindowInsetscorrompido de versões antigas da API (< 30), porque a correção em si pode ser prejudicial a irmãos deViewPager2. A correção ainda está disponível, mas agora é opcional para que os desenvolvedores possam decidir caso a caso. Ative a correção chamandoWindowInsetsApplier.install(viewPager2)). (Ic9a85).
Correções de bugs
- Correção de problemas de compatibilidade com versões mais recentes do
RecyclerView. Os usuários dessa versão doViewPager2precisam atualizar para pelo menosRecyclerView1.3.1-rc01.
Versão 1.1.0-beta01
4 de agosto de 2021
Lançamento de androidx.viewpager2:viewpager2:1.1.0-beta01. A versão 1.1.0-beta01 contém estas confirmações.
Mudanças na API
Atualização do AndroidX para usar o Kotlin 1.4 (Id6471, b/165307851, b/165300826).
Migração de todas as bibliotecas androidx para Java 8 (2923f39).
Correções de bugs
- Correção no envio de encartes de janela: todas as páginas agora recebem os mesmos encartes (I47fef)
Versão 1.1.0-alpha01
1º de abril de 2020
androidx.viewpager2:viewpager2:1.1.0-alpha01 é lançado. A versão 1.1.0-alpha01 contém estas confirmações.
Essa versão acompanha uma mudança em RecyclerView 1.2.0-alpha02 preenchendo CollectionInfo e CollectionItemInfo, que o RecyclerView não oferece mais por padrão. Ao atualizar para RecyclerView 1.2.0-alpha02, atualize também ViewPager2 para evitar regressões de acessibilidade.
Novos recursos
- A interface
FragmentTransactionCallbackfoi incluída para detectar mudanças no ciclo de vida do fragmento que ocorrem noFragmentStateAdapter(Ibda77, link em inglês)
Correções de bugs
- Correção do problema
FragmentStateAdaptercom a visibilidade inicial do menu de fragmentos ao adicionar um fragmento aoFragmentManager. (I9d2ff, b/144442240, links em inglês)
Versão 1.0.0
Versão 1.0.0
20 de novembro de 2019
androidx.viewpager2:viewpager2:1.0.0 é lançado sem mudanças desde 1.0.0-rc01. A versão 1.0.0 contém essas confirmações (link em inglês).
Principais recursos de 1.0.0
- Melhorias da implementação anterior do ViewPager:
- Compatibilidade com layout RTL (da direita para a esquerda)
- Compatibilidade com orientação vertical
- Compatibilidade confiável com
Fragment(incluindo processamento de mudanças na coleção subjacente deFragment) - Animações de mudança do conjunto de dados (incluindo compatibilidade com
DiffUtil).
- Migração fácil da implementação do
ViewPageranterior (paridade de API sempre que possível). Consulte o guia de migração e o app de amostra (link em inglês).
Consulte o guia sobre como usar o ViewPager2 para deslizar entre fragmentos.
Versão 1.0.0-rc01
23 de outubro de 2019
androidx.viewpager2:viewpager2:1.0.0-rc01 é lançado sem mudanças desde 1.0.0-beta05. A versão 1.0.0-rc01 contém essas confirmações (link em inglês).
Versão 1.0.0-beta05
9 de outubro de 2019
androidx.viewpager2:viewpager2:1.0.0-beta05 é lançado. A versão 1.0.0-beta05 contém essas confirmações (link em inglês).
Correções de bugs
- Correção de
requestFocusem uma página fora da tela que causa mudança de página. O comportamento agora é consistente com o ViewPager original. (b/140656866). - Correção de
focusque permanece em uma página fora da tela após mudança de página. Agora, o foco fica liberado ao mudar de página. (b/140656866). - Correção de pedidos de
Fragmentpara transações de pausar/retomar ao mudar de página. Agora, sempre pausamos o item principal antigo antes de retomar o novo item (b/139489059). - Correção de
canScrollHorizontally(int)ecanScrollVertically(int). Agora, eles retornam se o ViewPager2 consegue rolar na direção indicada (b/141848404) - Um problema em SwipeRefreshLayout foi corrigido para funcionar melhor com o ViewPager2.
Versão 1.0.0-beta04
5 de setembro de 2019
Lançamento de androidx.viewpager2:viewpager2:1.0.0-beta04. As confirmações incluídas nessa versão podem ser encontradas aqui (link em inglês).
Correções de bugs
- Correção de um bug de caso extremo de
FragmentStateAdaptercom pilha de retornoFragment(b/139095195). - Correção de
EditTextcom determinadas configurações de atributo que causam um salto de rolagem/página ao digitar/focar (b/138044582, b/139432498). - Correção de um problema com instâncias
ItemDecoratione solução alternativa para o posicionamento do indicador de rolagem (b/139012032). - Corrigidos vários problemas em outros componentes para funcionar melhor com
ViewPager2: RecyclerView, NestedScrollView e Navegação.
Versão 1.0.0-beta03
7 de agosto de 2019
androidx.viewpager2:viewpager2:1.0.0-beta03 é lançado. As confirmações incluídas nessa versão podem ser encontradas aqui (link em inglês).
Correções de bugs
- Correção de problema de
FragmentStateAdaptercom o estadoFragmenttransitório b/134246546. - Correção dos problemas de
currentItemescrollState, quando um conjunto de dados muda durante uma rolagem suave (casos extremos tratados) b/137642608. - Correção para as animações de
PageTransformer(incluindoMarginPageTransformer) em conflito com as animações de alteração do conjunto de dados b/134658996. - Correção de animações de rolagem suave em grandes conjuntos de dados (limite do valor de número inteiro de
float) b/134858960.
Versão 1.0.0-beta02
19 de julho de 2019
androidx.viewpager2:viewpager2:1.0.0-beta02 é lançado. As confirmações incluídas nessa versão podem ser encontradas aqui (link em inglês).
Correções de bugs
- Removida dependência não intencional do Jacoco, introduzida no
1.0.0-beta01(b/137782951, link em inglês)
Versão 1.0.0-beta01
17 de julho de 2019
androidx.viewpager2:viewpager2:1.0.0-beta01 é lançado. As confirmações incluídas nessa versão podem ser encontradas neste link.
Correções de bugs
- Correção da falha de
ViewPager2.updateCurrentItemao rolar e atualizar o conjunto de dados. - Correção da falha de
NullPointerExceptionrelacionada aViewPager2.isLayoutRtl. TOUCH_SLOP_PAGINGagora é uma tolerância de toque padrão.- Correção de eventos
OnPageChangeCallbackpara adaptadores vazios (página0, em vez de-1, para paridade comViewPager1).
Problemas conhecidos
- Ainda estamos trabalhando para resolver problemas pendentes antes de passar para a versão Estável.
Versão 1.0.0-alpha06
2 de julho de 2019
Lançamento de androidx.viewpager2:viewpager2:1.0.0-alpha06. As confirmações incluídas nessa versão podem ser encontradas aqui (link em inglês).
Esse é o nosso último alfa planejado antes de congelar a API e passar para a versão beta. Envie-nos um feedback sobre a API.
Novos recursos
- Fundamentos para melhoria da acessibilidade:
ACTION_PAGE_RIGHT,ACTION_PAGE_DOWNetc.
Mudanças na API
FragmentStateAdapter:Fragments de itens não principais estão limitados aSTARTED, e omenuVisibilitycorrespondente é definido como "falso".PageTransformer,MarginPageTransformer,CompositePageTransformer: correção da documentação paraposition.
Correções de bugs
- Correção de
currentItemdepois da mudança do conjunto de dados/adaptador. - Corrigido o problema de
MarginPageTransformercomoffscreenPageLimit. - Corrigidas ações de acessibilidade em comportamento
FakeDrag.
Versão 1.0.0-alpha05
5 de junho de 2019
androidx.viewpager2:viewpager2:1.0.0-alpha05 é lançado. As confirmações incluídas nessa versão podem ser encontradas neste link.
Novos recursos
- Introdução de
ItemDecoratorcom um comportamento consistente comRecyclerView. - Introdução de
MarginPageTransformerpara oferecer a capacidade de criar espaço entre as páginas (fora da inserção da página). - Introdução de
CompositePageTransformerpara oferecer a capacidade de combinar váriosPageTransformers.
Mudanças na API
- Renomeação do método
FragmentStateAdapter#getItemparaFragmentStateAdapter#createFragment: o nome anterior do método se mostrou uma fonte de bugs no passado. - Mudança do valor
OFFSCREEN_PAGE_LIMIT_DEFAULTde0para-1. Não será necessário alterar o código do cliente se a constanteOFFSCREEN_PAGE_LIMIT_DEFAULTfor usada.
Correções de bugs
- Corrigido o comportamento de
getCurrentItem()quandoSCROLL_STATE_SETTLINGé interrompido por uma ação de arrastar na direção oposta. - Resolvidos os problemas no carregador de classe
FragmentStateAdapterno contexto "Don't keep activities". - Aprimorada a documentação de
setOffscreenPageLimit.
Versão 1.0.0-alpha04
7 de maio de 2019
Lançamento de androidx.viewpager2:viewpager2:1.0.0-alpha04. As confirmações incluídas nessa versão podem ser encontradas neste link.
Novos recursos
offscreenPageLimit: permite um controle rigoroso do número deViews eFragments da páginas mantidas na hierarquia de visualização.
Mudanças na API
- Os atributos
orientationeisUserScrollablenão fazem mais parte doSavedState. - Os métodos
saveStateerestoreStateforam considerados finais emFragmentStateAdapter. - As anotações
ViewPager2.OrientationeViewPager2.ScrollStatese tornaram não públicas.
Correções de bugs
SavedState: foi corrigido um problema com a restauração quandoActivityé destruído/recriado.SavedState: a restauração é atrasada até que o adaptador seja configurado.OnPageChangeCallback: casos extremos menores foram corrigidos.
Versão 1.0.0-alpha03
3 de abril de 2019
androidx.viewpager2:viewpager2:1.0.0-alpha03 é lançado. As confirmações incluídas nessa versão podem ser encontradas neste link.
Novos recursos
- Capacidade de rolar programaticamente o ViewPager2:
fakeDragBy(offsetPx).
Mudanças na API
FragmentStateAdapteragora requer um objetoLifecycle. Dois construtores de utilitários foram adicionados para extraí-lo dos hostsFragmentActivityouFragment.
Correções de bugs
- Várias correções de compatibilidade de
Fragment:- Gerenciamento de atualizações de conjuntos de dados enquanto elas estão minimizadas ou durante uma rotação de tela.
- Remoção de Fragments irrelevantes depois da rotação.
- Remoção do estado salvo dos itens removidos.
PageChangeCallback: correção do cálculo de ajuste para páginas com margens.
Versão 1.0.0-alpha02
13 de março de 2019
Lançamento de androidx.viewpager2:viewpager2:1.0.0-alpha02. A lista completa de confirmações incluídas nessa versão pode ser encontrada neste link.
Novos recursos
- Capacidade de desativar a entrada do usuário (
setUserInputEnabled,isUserInputEnabled).
Mudanças na API
- A classe ViewPager2 foi considerada final.
Correções de bugs
- Estabilidade de
FragmentStateAdaptercorrigida.
Versão 1.0.0-alpha01
7 de fevereiro de 2019
Lançamento do androidx.viewpager2:viewpager2 1.0.0-alpha01. Essa é a primeira versão do ViewPager2.
Novos recursos
- Comparação com o antecessor
android.support.v4.view.ViewPager(VP1):- Compatibilidade com layout da direita para a esquerda (RTL, na sigla em inglês).
- Compatibilidade com orientação vertical.
notifyDataSetChangedtotalmente funcional (bugs do VP1 resolvidos).
Mudanças na API.
FragmentStateAdaptersubstituiFragmentStatePagerAdapter.RecyclerView.AdaptersubstituiPagerAdapter.registerOnPageChangeCallbacksubstituiaddPageChangeListener.
Problemas conhecidos
- clipToPadding.
- Sem fakeDrag.
- JavaDoc.
- Rolagem aninhada paralela à orientação.
- Sem controle de limite fora da tela.
- Requer melhor integração do TabLayout.
- Sem configurador de pageWidth (forçado 100%/100%).
- Transformador de página: sem opção de camada de hardware/software. Nenhuma ordem de desenho reversa.
- O item atual continua visível depois que uma página é inserida antes dele.
- A navegação pelo teclado precisa de um trabalho.
- Melhorias na estabilidade e desempenho de
FragmentStateAdapterem breve.