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 eColorStateList
.
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, incluindoheifwriter
erecyclerview-selection
, está começando nesse novo pacote. Esperamos que a divisão entreandroid.*
eandroidx.*
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 paraRecyclerView
. 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
- Apresentamos um novo tema de aplicativo,
- 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()
egetSystemServiceName()
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()
edestroyLoader()
agora só podem ser chamados na linha de execução principalonStartLoading()
eonStopLoading()
de um carregador agora são chamados quando o FragmentActivity/Fragment que o contém é iniciado e interrompido, respectivamente.onLoadFinished()
só será chamado entreonStart()
eonStop
. Como resultado, as transações de fragmentos agora podem ser feitas com segurança emonLoadFinished()
- 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 emdismiss()
Agora é possível determinar se a caixa de diálogo foi dispensada manualmente emonStop()
verificando segetDialog().isShowing()
retorna falso
Novas APIs
ListAdapter
paraRecyclerView
(junto comAsyncListDiffer
) 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 usamDiffUtil
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 construtoresViewModelProvider
como uma alternativa ao uso deViewModelProviders.of()
- Os fragmentos agora têm os métodos
requireContext()
,requireActivity()
,requireHost()
erequireFragmentManager()
, que retornam um objetoNonNull
dos métodos get equivalentes ou geram umaIllegalStateException
. requireViewById()
, uma versão de compatibilidade@NonNull
defindViewById()
foi adicionada aWindowCompat
,ActivityCompat
eViewCompat
, que geram umaIllegalArgumentException
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 agetExternalMediaDirs()
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
geraNullPointerException
. -
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
geraBadParcelableException
.
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 deTransition
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 umContentProvider
. 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, incluindogetImportantForAutofill()
,isImportantForAutofill()
,setAutofillHints()
esetImportantForAutofill()
. -
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étodosetSeparators()
. -
DiffCallback
foi adicionado para permitir queArrayObjectAdapter
aproveite a saída fornecida porDiffUtil
. - 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
ePlaybackOverlayFragment
.
-
- 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 aNotificationCompat
v4),KeyEventCompat
,ParallelExecutorCompat
eSearchViewCompat
. - 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
Fragment
eFragmentActivity
(a classe base deAppCompatActivity
) agora implementam a interfaceLifecycleOwner
dos Componentes de arquitetura.
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:- Use
NotificationCompat.Builder
em vez dev7.app.NotificationCompat.Builder
. A funcionalidade que dependia anteriormente do uso do builder AppCompat v7 agora foi incorporada no Builder Compat v4. -
DecoratedCustomViewStyle
foi movido para o pacoteandroid.support.v4.app
. -
MediaStyle
eDecoratedMediaCustomViewStyle
agora fazem parte da biblioteca media-compat e podem ser encontrados no pacote android.support.v4.media.app.
- Use
Novas APIs
- Nova sinalização booleana
fastScrollEnabled
paraRecyclerView
. Se ativado,fastScrollHorizontalThumbDrawable
,fastScrollHorizontalTrackDrawable
,fastScrollVerticalThumbDrawable
efastScrollVerticalTrackDrawable
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.