Revisões recentes da Biblioteca de Suporte

Esta página traz detalhes sobre as versões mais recentes do pacote da Biblioteca de Suporte. Para versões anteriores, consulte o Arquivo de revisões da Biblioteca de Suporte.

Revisão 28.0.0 - produção

21 de setembro de 2018

Esta é a versão estável da Biblioteca de Suporte 28.0.0 e é adequada para uso em produção. Essa será a última versão do recurso no pacote android.support. Recomendamos que os desenvolvedores migrem para o AndroidX.

Novos recursos

  • O AnimatedStateListDrawableCompat fornece transições animadas entre estados de drawable.
  • VectorDrawableCompat é compatível com preenchimentos e traços de gradiente e ColorStateList.

Revisão 28.0.0 RC 2

27 de agosto de 2018

Essa versão candidata a lançamento da Biblioteca de Suporte é considerada completa, e a superfície da API pública é estável. Ela será enviada como versão estável final, exceto na existência de problemas críticos. Ela é segura para uso em produção. Informe qualquer problema ao Issue Tracker público.

Problemas corrigidos

  • O ProGuard removeu o construtor View Model Application (problema público 112230489).
  • Correção do estado da constante "AnimatedStateListDrawableCompat".
  • Remoção da dependência media2 do mediarouter 1.0.0.
  • "Fragment.getViewLifecycleOwner()" não é interrompido ao pressionar o botão home (problema público 113070421) ([problema público 113070421](https://issuetracker.google.com/issues/113070421))

Revisão 28.0.0 RC 1

6 de agosto de 2018

Essa versão candidata a lançamento da Biblioteca de Suporte é considerada completa, e a superfície da API pública é estável. Ela será enviada como versão estável final, exceto na existência de problemas críticos. Ela é segura para uso em produção. Informe qualquer problema ao Issue Tracker público.

Observação:algumas bibliotecas, como media2, permaneceram no estágio Alfa porque as superfícies da API delas ainda não foram finalizadas. Não recomendamos o uso de bibliotecas Alfa em produção. É preciso evitar de maneira estrita que as bibliotecas dependam de bibliotecas Alfa em produção, já que as superfícies de API delas podem mudar de maneiras incompatíveis com a fonte e o binário.

Problemas corrigidos

  • O menu "BottomNavigationView" não é inicializado corretamente na Android Design Support Library.
  • PositionalDataSource não gerencia corretamente inserções de itens pré-pendentes no banco de dados.
  • Os controles deslizantes são instáveis e não respondem.
  • "SlicesProviderCompat.getPinnedSpecs()" não adiciona IDs do usuário a URIs.
  • RoutePlayer2: a reprodução remota não volta para a reprodução local.
  • A análise de slice em cache está causando falhas em ações.
  • Falha no app Pesquisa Google na renderização do Slice estático.
  • Ocorre uma ConcurrentConditionException na biblioteca de seleção RecyclerView quando o conjunto de dados muda com a remoção da seleção.
  • PreferenceThemeOverlay foi atualizado com o tema do Material Design mais recente. Se nenhum tema personalizado for fornecido, PreferenceThemeOverlay será usado como padrão.
  • Os temas PreferenceThemeOverlay.v14 e PreferenceThemeOverlay.v14.Material foram descontinuados e substituídos por PreferenceThemeOverlay.
  • A visibilidade de PreferenceGroup agora está vinculada aos filhos: a ocultação de um grupo pai também impede que os filhos sejam exibidos na hierarquia Use Preference.isGuided() para saber se uma preferência é realmente exibida para o usuário na hierarquia.
  • O uso de Preference.onSetInitialValue(boolean, Object) foi descontinuado e substituído por onSetInitialValue(Object). PreferenceDataStore agora também restaura corretamente os valores padrão.

Revisão 28.0.0 Beta 1

Julho de 2018

Esta versão Beta da Biblioteca de Suporte é considerada completa e a superfície da API pública é estável, exceto na existência de qualquer problema crítico. Embora essa versão seja segura para uso em produção, ela ainda pode apresentar bugs. Informe qualquer problema ao rastreador de problemas público.

Problemas corrigidos

  • GestureSelectionHelper engole eventos em itens não selecionáveis.
  • Os slices do controle deslizante podem ter um ícone de polegar duplicado quando o valor do controle está sendo atualizado.
  • IconCompat corrompeu ícones TYPE_URI.
  • Falha com preferências usando Seekbar.
  • Falha em Slice.toString().
  • OffsettingListUpdateCallback.onmove() chama mCallback.onRemoved() em vez de mCallback.onmove() (problema 110711937).

Revisão 27.1.1

Abril de 2018

Problemas corrigidos

  • AsyncListDiffer não chama getChangePayload (problema AOSP 73961809).
  • O fragmento OnCleared do ViewModel não é chamado (problema AOSP 74139250).
  • O RecyclerView.setRecycledViewPool() aumenta attachCount mesmo quando o adaptador é nulo.
  • O RecyclerView gera uma NPE se SmoothScroller.onStop chamar stop() ou startSmoothScroller().
  • A transação de substituição de fragmento faz com que o fragmento anterior oscile depois que o novo fragmento for exibido (problema AOSP 74051124).
  • Mudança interruptiva do callback do carregador na versão 27.1.0 (problema AOSP 74135998).
  • O layout RTL não funciona quando visualização em grade vertical define a coluna como >1.
  • O onLoadFinished é chamado várias vezes no ViewPager com o FragmentPagerAdapter.
  • O AsyncListDiffer precisa enviar atualizações depois de definir a lista atual (problema AOSP 74003309).
  • O ShareActionProvider gera uma ClassCastException na versão 27.1.0.
  • Mudança do ciclo de vida do fragmento com o ViewPager (problema AOSP 73976255).

Revisão 28.0.0 Alfa 1

Março de 2018

Observação:a 28.0.0-alpha1 é uma versão de pré-lançamento compatível com a prévia para desenvolvedores do Android P. A plataforma da API está sujeita a mudanças e não necessariamente inclui recursos ou correções de bugs das versões estáveis mais recentes da Biblioteca de Suporte.

Mudanças importantes

  • Conforme observado anteriormente no anúncio do Android KTX, continuamos adotando o prefixo do pacote androidx em todas as nossas bibliotecas. Uma seleção de novas bibliotecas, incluindo heifwriter e recyclerview-selection, está começando nesse novo pacote. Esperamos que a divisão entre android.* e androidx.* torne mais óbvio quais APIs são incluídas na plataforma e quais são bibliotecas estáticas para desenvolvedores de apps que funcionam em diferentes versões do Android.
  • As partes de support-core-ui, support-core-utils e support-compat foram divididas em bibliotecas menores. Essa mudança nos ajudará a identificar as dependências da Biblioteca de Suporte no futuro. Agora temos estas novas bibliotecas:
    • asynclayoutinflater (de support-core-ui)
    • collections (de support-compat)
    • coordinatorlayout (de design)
    • cursoradapter (de support-core-ui)
    • customview (de support-core-ui)
    • documentfile (de support-core-utils)
    • drawerlayout (de support-core-ui)
    • interpolator (de support-core-ui)
    • loader (de support-fragments e core-utils)
    • localbroadcastmanager (de support-core-utils)
    • print (de support-core-utils)
    • slidingpanelayout (de support-core-ui)
    • swiperefreshlayout (de support-core-ui)
    • viewpager (de support-core-ui)

Novas APIs

  • recyclerview-selection oferece suporte à seleção de itens para RecyclerView. O pacote oferece:
    • Suporte à criação, modificação, inspeção e monitoramento de mudanças em um conjunto de itens selecionados em uma lista da RecyclerView.
    • Suporte a ações intuitivas de seleção múltipla:
      • A seleção baseada em toque permite que os usuários selecionem intervalos de itens com um gesto intuitivo de tocar e pressionar.
      • A seleção de banda com o mouse permite que os usuários selecionem um bloco de itens em uma lista RecyclerView usando ações tradicionais de banda/laço do ponteiro do mouse.
    • Suporte a dispositivos centrados em toque, incluindo formatos de notebooks com tela touchscreen e telefones, além de dispositivos centrados em ponteiro.
  • A HEIF Writer oferece compatibilidade para gravação de imagens estáticas no formato HEIF.
  • Biblioteca Design
    • Apresentamos um novo tema de aplicativo, Theme.MaterialComponents, com novos atributos e estilos atualizados para componentes.
    • Adicionamos os seguintes componentes:
      • BottomAppBar
      • Chip
      • ChipGroup
      • MaterialButton
      • MaterialCardView
  • Os Slices oferecem um framework para que os apps incorporem conteúdo de modelo de outros apps.
    • slices-builders contém métodos para criar conteúdo em um formato modelo.
    • slices-view contém métodos para apresentar esse conteúdo.
  • As ações do navegador oferecem um protocolo para os desenvolvedores de apps iniciarem um menu de contexto consistente (mas personalizável) para URLs. Esse recurso depende da presença de um app de navegador (como o Chrome, em que o recurso ainda está em desenvolvimento) que implemente suporte para ações do navegador.
  • ContextCompat.getSystemService() e getSystemServiceName() permitem pesquisas de serviço do sistema por tipo em todos os níveis de API.

Correções de bugs

  • O fragmento OnCleared do ViewModel não é chamado (problema AOSP 74139250).
  • O onLoadFinished é chamado várias vezes no ViewPager com o FragmentPagerAdapter (problema AOSP 74182171).
  • O smoothScrollToPosition() de LinearLayoutManager do RecyclerView exibe movimento errático (para frente e para trás) em determinadas circunstâncias (problema AOSP 71567765).

Revisão da versão 27.1.0

Fevereiro de 2018

Mudanças importantes

  • A implementação subjacente de Carregadores foi reescrita para usar o Ciclo de vida. Embora a API permaneça inalterada, há uma série de mudanças de comportamento:
    • initLoader(), restartLoader() e destroyLoader() agora só podem ser chamados na linha de execução principal
    • onStartLoading() e onStopLoading() de um carregador agora são chamados quando o FragmentActivity/Fragment que o contém é iniciado e interrompido, respectivamente.
    • onLoadFinished() só será chamado entre onStart() e onStop. Como resultado, as transações de fragmentos agora podem ser feitas com segurança em onLoadFinished()
    • O uso dos métodos FragmentController relacionados aos carregadores foi descontinuado.
  • O getDialog() do DialogFragment não será nulo até onDestroyView(), em vez de se tornar nulo em dismiss() Agora é possível determinar se a caixa de diálogo foi dispensada manualmente em onStop() verificando se getDialog().isShowing() retorna falso

Novas APIs

  • ListAdapter para RecyclerView (junto com AsyncListDiffer) facilita a computação de diferenças de lista em uma linha de execução em segundo plano. Isso pode ajudar o RecyclerView a animar mudanças de conteúdo automaticamente, com o mínimo de trabalho na linha de execução de IU. Eles usam DiffUtil internamente.
  • SortedList.ReplaceAll permite atualizar todos os dados em uma SortedList, que executa todas as animações adequadas para inserções, remoções, mudanças e movimentos (os movimentos são tratados como remoções e inserções).
  • FragmentActivity e Fragment agora implementam ViewModelStoreOwner e agora podem ser usados com os construtores ViewModelProvider como uma alternativa ao uso de ViewModelProviders.of()
  • Os fragmentos agora têm os métodos requireContext(), requireActivity(), requireHost() e requireFragmentManager(), que retornam um objeto NonNull dos métodos get equivalentes ou geram uma IllegalStateException.
  • requireViewById(), uma versão de compatibilidade @NonNull de findViewById() foi adicionada a WindowCompat, ActivityCompat e ViewCompat, que geram uma IllegalArgumentException quando o destino não pode ser encontrado.
  • Os métodos LoaderCallbacks agora têm as anotações @Nullable e @NonNull adequadas.
  • FileProvider agora oferece suporte a getExternalMediaDirs() na API 21 e em dispositivos mais recentes usando o novo elemento <external-media-path>.

Correções de bugs

  • O fragmento que inicializa o carregador em onCreate corrompeu o ciclo de vida dentro do ViewPager
  • O LoaderManager gera IllegalStateException em onLoadFinished.
  • O LoaderViewModel não limpa os carregadores em onCleared.
  • Arquivo de classe para android.arch.lifecycle.ViewModelStoreOwner não encontrado
  • O DialogFragment onDismiss não é chamado imediatamente depois de dismiss().
  • Os emojis de bandeiras de países não funcionam em dispositivos com teclas de liberação ao usar fontes para download.
  • A biblioteca de preferências usa atributos que não funcionam em versões antigas do Android.
  • Os tipos de artefatos de testlib do MediaCompat estão documentados incorretamente (problema AOSP 71559905)
  • Falha do Google Sans no TypefaceCompatUtil
  • Exposição do construtor ArraySet que recebe a coleção.
  • A updateApi remove arquivos .ignore que deveriam ser preservados.
  • MainFragments redundantes eram criados em BrowseFragment.
  • Remoção do uso de reflexão da CarRecyclerView.
  • java.lang.IllegalStateException em FragmentManagerImpl.checkStateLoss
  • A java.lang.SecurityException foi recebida (não documentada) ao usar android.support.v4.content.PermissionChecker.checkSelfPermission.
  • IndexOutOfBoundsException do RecyclerView porque State.mPreviousLayoutItemCount não foi limpo em setAdapter (problema AOSP 37657125).
  • O fragmento que inicializa o carregador em onCreate corrompeu o ciclo de vida no ViewPager (problema AOSP 34831613).
  • Falha de FragmentManagerImpl.execSingleAction.

Revisão da versão 27.0.2

Novembro de 2017

Correções de bugs

  • EmojiEditTextHelper gera NullPointerException.
  • IllegalStateException: o fragmento ainda não foi anexado.
  • Não é possível dispensar o pop-up do ícone "Transmitir" tocando em qualquer lugar da tela.
  • MediaMetadataCompat gera BadParcelableException.

Revisão da versão 27.0.1

Novembro de 2017

Correções de bugs

  • O LifecycleRegistry fica no estado errado depois que startActivityForResult() é chamado. (Problema 65665621, link em inglês)
  • A cor dos botões desativados está muito clara nos níveis mais antigos da API.
  • Depois que um usuário rola a tela, não é possível clicar em um item em uma RecyclerView. (problema AOSP 66996774).
  • No Talkback, clicar em mais opções não faz com que o sistema anuncie o novo pop-up ou adicione foco às novas opções.

Revisão da versão 27.0.0

Outubro de 2017

Diferenças nas APIs

Mudanças na API

  • Adição de anotações de nulidade a várias APIs, incluindo: Isso pode causar erros de compilação em Kotlin quando os tipos de retorno anulável não são processados corretamente.
  • Fragment pode usar versões da Biblioteca de Suporte de Transition para transições de fragmento, incluindo transições de elementos compartilhados.
  • A biblioteca de paginação de conteúdo (android.support.content.ContentPager) oferece suporte à paginação de conteúdo exposto por meio de um ContentProvider. O uso dessa biblioteca permite que um cliente evite "trocas de janela do cursor" dispendiosas entre processos na linha de execução de IU, fornecendo uma biblioteca de compatibilidade para o recurso do Android 8.0.
  • ViewCompat agora adiciona wrappers para métodos de preenchimento automático, incluindo getImportantForAutofill(), isImportantForAutofill(), setAutofillHints() e setImportantForAutofill().
  • O Leanback usa novos recursos e ajustes e perde algumas classes descontinuadas, como:
    • Picker agora pode usar separadores diferentes entre cada coluna usando o método setSeparators().
    • DiffCallback foi adicionado para permitir que ArrayObjectAdapter aproveite a saída fornecida por DiffUtil.
    • Adição de infraestrutura para oferecer suporte a players de mídia com controles variáveis, adicionando controles opcionais para avançar, repetir, ordem aleatória, próximo, anterior e retroceder.
    • Remoção de MediaControllerGlue, PlaybackControlGlue, PlaybackControlSupportGlue e PlaybackOverlayFragment.
  • Para testes, o utilitário PollingCheck é transferido do CTS do AOSP. Ele pesquisa se uma condição ocorre dentro de uma janela de tempo limite.
  • Adição de infraestrutura para oferecer suporte a permissões de execução no Instant Apps para Android 5.0, usando PermissionCompatDelegate.
  • Guias personalizadas confiáveis agora são compatíveis, além da capacidade de definir uma relação entre um app e um URI de origem.
  • O suporte ao modo ambiente do Android Wear foi simplificado com o fragmento headless AmbientMode, que também torna o suporte ao modo ambiente compatível com o uso dos Componentes de arquitetura.
  • A equipe do Wear quer saber as opiniões dos desenvolvedores sobre essa mudança significativa. Para mais informações, consulte as Notas da versão do Android Wear.
  • Algumas classes descontinuadas foram removidas à medida que deixamos de usar APIs anteriores à V14, como android.support.v7.NotificationCompat (use a NotificationCompat v4), KeyEventCompat, ParallelExecutorCompat e SearchViewCompat.
  • Todas as constantes de metadados do manifesto do Wear migradas agora estão disponíveis por meio de android.support.wear.utils.MetadataConstants.
  • O suporte ao modo ambiente agora está disponível para todas as atividades, não apenas a WearableActivity. Para saber mais, consulte a referência AmbientMode.
  • RoundedDrawable agora é compatível com a inflação de XML.

Correções de bugs

  • O aplicativo falha com a Biblioteca de Suporte 27 e a fonte disponível para download.
  • As fontes disponíveis para download não funcionam para novos projetos criados depois da atualização do SDK.
  • A API SpeechRecognizer está corrompida no upgrade mais recente.
  • Falha associada a fragmentos durante o desenho, depois da remoção da visualização animada.
  • A abertura de mídia support-leanback-demos está corrompida.
  • A Biblioteca de Suporte do Android está adicionando <meta-data> ao manifesto.
  • O FontResourcesParserCompat deveria entender android: attrs.
  • O Leanback Glue não é compatível com a tecla de entrada de pausa.
  • Símbolo não resolvido no ambiente de desenvolvimento integrado quando vários pacotes compartilham o mesmo ID de artefato.
  • Exceção de ponteiro nulo em CarExtender.
  • O modo de ordem aleatória/repetição incorreto definiu PlaybackState depois de criar MediaController.
  • Os pôsteres padrão de cluster da biblioteca estão sendo executados no cluster seguinte durante a navegação.
  • Os metadados do card de recomendação estão cortados.
  • IllegalArgumentException em RecyclerView.attachViewToParent().
  • ClassNotFoundException ao realizar unmarshalling de SavedState (problema AOSP 37133281).
  • O foco trava no RecyclerView.
  • Corrigir ANR no LayoutManager do Leanback.

Revisão da versão 26.1.0

Setembro de 2017

Esta é uma versão especial para integrar a Biblioteca de Suporte com Lifecycles dos Componentes de arquitetura. Se você não estiver usando a biblioteca Lifecycles, não será necessário atualizar da 26.0.2. Para ver mais informações, consulte as Notas da versão dos componentes de arquitetura.

Mudanças importantes

Revisão da versão 26.0.2

Agosto de 2017

Correções de bugs

  • Os ícones de menu são achatados na Biblioteca de Suporte 26.0.0.
  • GuidedAction.multilineDescription não funciona corretamente com o Leanback

Revisão da versão 26.0.1

Agosto de 2017

Correções de bugs

  • O FontCompat 26.0.0 falha em dispositivos O-MR1.
  • A Biblioteca de Suporte ao Design (Design Support Library) 26.0.0 não deve incluir suporte a multidex (problema 63999442).
  • O AppBarLayout agora tem 300 pixels de preenchimento à esquerda a partir da versão 26.0.0.
  • A navegação de PlaybackTransportControl está corrompida.
  • Fragment.onCreateView é chamado um pouco antes de onCreate terminar.
  • android.os.BadParcelableException: ClassNotFoundException quando unmarshalling: android.support.v4.media.MediaMetadataCompat.

Revisão da versão 26.0.0

Julho de 2017

Importante:as Bibliotecas de Suporte agora estão disponíveis no repositório Maven do Google. Não é necessário fazer o download do repositório de suporte do SDK Manager. Para mais informações, consulte Configuração da Biblioteca de Suporte.

Mudanças importantes

  • A versão mínima do SDK foi aumentada para 14. Como resultado, várias APIs que existiam apenas para compatibilidade com níveis anteriores ao 14 foram descontinuadas. Os clientes dessas APIs precisam migrar para os equivalentes do framework, conforme indicado na página de referência de cada API descontinuada.
  • A Biblioteca de IU do Wear contém classes que ajudam a implementar padrões e layouts que funcionam em dispositivos Wear. Para mais informações, consulte Usar a Biblioteca de interface do Wear.
  • O módulo de suporte da porcentagem foi descontinuado. Os clientes desse módulo precisam migrar para o novo widget ConstraintLayout, que é fornecido como um artefato separado no SDK Manager.
  • android.support.v7.app.NotificationCompat e as classes que ele contém foram descontinuados e serão removidos em uma versão futura:

Novas APIs

  • Nova sinalização booleana fastScrollEnabled para RecyclerView. Se ativado, fastScrollHorizontalThumbDrawable, fastScrollHorizontalTrackDrawable, fastScrollVerticalThumbDrawable e fastScrollVerticalTrackDrawable precisarão ser definidos.

Diferenças nas APIs

Correções de bugs

  • Laço infinito em RecyclerView.toString().
  • ResourceNotFoundException executa o projeto Kotlin na API 16 do AVD após o upgrade para o Canary 6
  • java.lang.AssertionError na visualização de design com a Biblioteca de Suporte 26.0.0-beta2
  • Visualização de layout do Android Studio corrompida para widgets da Biblioteca de Suporte.
  • Preference.setSingleLineTitle() é ignorado se a preferência não é criada com atributos.
  • As anotações DAC "Desde" estão erradas nas revisões 25.3.0 / 25.4.0 da Biblioteca de Suporte
  • ResourcesCompat.getFont() gera uma exceção
  • O título da barra de ferramentas não está em negrito.
  • O dimensionamento automático com maxLines produz resultados inesperados.
  • NullPointerException em TextView.checkForRelayout().
  • AppCompatTextViewAutoSizeHelper.setRawTextSize() chama requestLayout() durante o layout
  • EmojiAppCompatTextView apresenta falha.
  • O dimensionamento automático de TextView não é ajustado automaticamente quando o texto é alterado.
  • Corrupção da tela em Instacart.
  • UnsupportedOperationException em MenuItemCompat.
  • NotificationCompat não extrai totalmente as ações na API 24 ou posterior.
  • Problemas de ancoragem de CoordinatorLayout em atualizações de layout.