Arquivo de revisões da Biblioteca de Suporte

Esta página oferece detalhes sobre as versões anteriores do pacote da Biblioteca de Suporte. Para saber sobre as versões mais recentes, consulte Revisões recentes da Biblioteca de Suporte.

Revisão 26.0.0 Beta 2

Junho de 2017

A 26.0.0-beta2 é uma versão de pré-lançamento. A superfície da API está sujeita a mudanças e não inclui necessariamente recursos ou correções de bugs das versões estáveis mais recentes da Biblioteca de Suporte.

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.

Novas APIs

Diferenças de API

Correções de bugs

  • A queda do SDK do Android O causa a perda do itálico em TextViews
  • Exceção de ponteiro nulo ao se conectar a MediaBrowserServiceCompat
  • O TextInputLayout precisa definir hints em onProvideAutofillStructure()
  • Excedente de pilha ao usar o dimensionamento automático de TextView no Android O

Revisão 26.0.0 Beta 1

Maio de 2017

A 26.0.0-beta1 é uma versão de pré-lançamento. A superfície da API está sujeita a mudanças e não inclui necessariamente recursos ou correções de bugs das versões estáveis mais recentes da Biblioteca de Suporte.

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

  • FragmentActivity.setSupportMediaController() e FragmentActivity.getSupportMediaController() foram removidos. Use os novos métodos estáticos MediaControllerCompat.setMediaController() e MediaControllerCompat.getMediaController().
  • BottomNavigationView agora chama onNavigationItemReselected(), em vez de onNavigationItemSelected(), quando um item já selecionado é selecionado novamente.
  • Todas as instâncias do método findViewById() agora retornam <T extends View> T, em vez de View. Essa mudança tem as seguintes implicações:
    • Isso pode fazer com que o código existente tenha um tipo de retorno ambíguo, por exemplo, se tanto someMethod(View) quanto someMethod(TextView) passarem o resultado de uma chamada para findViewById().
    • Ao usar a linguagem de origem do Java 8, será necessária uma transmissão explícita para View quando o tipo de retorno não tiver restrições (por exemplo, assertNotNull(findViewById(...)).someViewMethod()).
    • Modificações em métodos findViewById() não finais (como Activity.findViewById()) precisarão que o tipo de retorno seja atualizado.

Novas APIs

  • FragmentManager e Fragment têm um método isStateSaved() que permite consultar se uma transação será ou não permitida sem perda de estado. É útil verificar isso especialmente ao gerenciar um evento onClick() antes de executar qualquer transação.
  • O movimento de caminho é compatível com AnimatedVectorDrawableCompat. O movimento de caminho permite que um animador de objeto mude duas propriedades ao mesmo tempo em um caminho. O caminho é especificado como android:pathData no XML do animador.
  • Animação baseada em física:
    • Novo FlingAnimation compatível com animações com uma velocidade inicial e uma desaceleração suave.
    • As subclasses de DynamicAnimation são compatíveis com a animação de propriedades personalizadas para qualquer objeto.
    • Tanto SpringAnimation quanto FlingAnimation agora podem animar um valor flutuante sem precisar de um View ou Object para se associar.

    Para mais informações, consulte as páginas de visualização de Animação de mola e Animação com rolagem.

  • Compatibilidade com fontes em XML:
    • ResourcesCompat.getFont permite o carregamento de recursos de fontes, incluindo da família de fontes XML, que podem ser usados com TextView.setTypeface().
    • Ao usar o AppCompat, o TextView oferece compatibilidade com a especificação de um recurso de fonte ou família de fontes XML por meio do atributo XML android:fontFamily.
    • Use a família de fontes XML para criar famílias de fontes com variações de estilo e espessura. Se você usar as classes da Biblioteca de Suporte para fazer isso, use os atributos app: e android:.
  • Fontes para download:
    • Novo FontsContractCompat, que permite que você solicite fontes de um provedor, em vez de agrupá-las no seu app.
    • As fontes também podem ser solicitadas em XML e usadas em layouts.
  • Biblioteca de compatibilidade com emojis:
    • O EmojiCompat pode processar determinado CharSequence e adicionar EmojiSpans.
    • EmojiTextView e outros widgets para exibir emojis.
    • FontRequestEmojiCompatConfig para solicitar uma fonte de emoji a um provedor de fontes.
  • Dimensionamento automático do TextView:
    • Novos métodos no TextViewCompat, bem como atributos XML, para controlar o dimensionamento automático em TextView.
  • Controles de reprodução Leanback compatíveis com a busca:
    • Novo PlaybackTransportRowPresenter que renderiza controles de reprodução com uma barra de busca.
    • Novo PlaybackTransportControlGlue que funciona com PlaybackTransportRowPresenter e é compatível com a busca.
    • Nova classe base PlaybackSeekDataProvider para o app fornecer miniaturas de busca para PlaybackTransportControlGlue.
  • Armazenamento de dados de preferências:
    • O PreferenceDataStore agora permite que você implemente seu próprio armazenamento de preferências, configurado com novos métodos em Preference e PreferenceManager.

Problemas conhecidos

  • A integração da compatibilidade de fontes para download e emojis com o Google Play Services só funciona na versão v11 ou posterior dessa plataforma, disponível no programa Beta do Google Play Services.

Correções de bugs

  • A API MediaBrowserCompat.search() não funciona (problema AOSP 262170).
  • O ViewCompat.postInvalidateOnAnimation() gera uma exceção (problema AOSP 80146).
  • onActivityCreated() é chamado para fragmentos na Activity destruída
  • RecyclerView.isComputingLayout() retornará verdadeiro durante a pré-busca
  • Quando uma transição Fade é interrompida e revertida, o View inicia a animação desde o começo. Correção transferida do framework do Android.
  • O Transition.Fade ignora o alfa inicial de View (problema AOSP 221820)

Revisão 26.0.0 Alfa 1

Março de 2017

A 26.0.0-alpha1 é uma versão de pré-lançamento. A superfície da API está sujeita a mudanças e não inclui necessariamente recursos ou correções de bugs das versões estáveis mais recentes da Biblioteca de Suporte.

Mudanças importantes

Observação: a versão mínima do SDK foi aumentada para 14. Como resultado, o uso de várias APIs que existiam somente para compatibilidade com as APIs anteriores à 14 foi suspenso. Os clientes dessas APIs precisam migrar para os equivalentes do framework deles, conforme indicado na página de referência de cada API obsoleta.

  • O módulo support-percent foi suspenso. Os clientes desse módulo precisam migrar para o novo widget ConstraintLayout, que é fornecido como um artefato separado no SDK Manager.
  • O módulo support-fragment não tem mais uma dependência no módulo support-media-compat.

Novas APIs

Muitos novos métodos, classes e constantes foram adicionados para oferecer compatibilidade com versões anteriores para APIs de plataforma adicionadas na versão de pré-lançamento do Android O.

  • IME_FLAG_NO_PERSONALIZED_LEARNING: os IMEs (editores de método de entrada, na sigla em inglês) podem detectar sinalizações "sem aprendizado" para apps que têm modo privado, como navegadores. Esse recurso ajuda os IMEs a descobrir se um app está em modo privado. Assim, eles podem desativar o aprendizado ou a funcionalidade adaptativa enquanto o app estiver nesse modo.

Para ver uma lista completa das mudanças entre as APIs 25.2.0 e 26.0.0-alpha1, consulte o relatório de diferenças da API da Biblioteca de Suporte.

Correções de bugs

  • Em alguns casos, a animação simples AutoTransition pode ser interrompida por "pulos" na visualização (problema AOSP 221816).

Revisão 25.4.0

Junho 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

  • executePendingTransactions(), commitNow(), popBackStackImmediate() e chamadas de transações semelhantes não são permitidas durante as mudanças de estado de FragmentManager. A execução reentrante de transações não é segura, e agora o FragmentManager aplica isso durante as alterações de estado.
  • Simultaneamente a esta versão da Biblioteca de Suporte, também estamos lançando a versão multidex1.0.2. Essa versão inclui as seguintes mudanças importantes:
    • Permite a multidexação do APK de instrumentação.
    • Suspende o uso do MultiDexTestRunner. Em vez dele, é necessário usar o AndroidJUnitRunner.
    • Oferece uma proteção melhor contra o mau gerenciamento de extração de arquivos do app.
    • Corrige um bug que poderia levar ao abandono de arquivos temporários.
    • Proporciona uma instalação mais rápida quando feita em um processo simultâneo.
    • Corrige um bug de instalação nas APIs 19 e 20.

APIs novas e modificadas

A transformação e a interpolação de caminho são compatíveis com o AnimatedVectorDrawableCompat. A transformação do caminho permite que as formas mudem de um caminho (especificado como android:valueFrom) para outro (especificado como android:valueTo), oferecendo efeitos visuais complexos e atraentes. A interpolação de caminho permite que os interpoladores para AnimatedVectorDrawableCompat sejam especificados como caminhos (especificados como android:pathData no XML do interpolador).

Diferenças de API

Problemas corrigidos

  • Exceção de ponteiro nulo ao se conectar a MediaBrowserServiceCompat
  • A API MediaBrowserCompat.search() não funciona (problema AOSP 262170)
  • Correção nos callbacks BrowseFragment onItemClicked corrompidos na versão 25.3.0
  • NullPointerException ao rolar para cima e para baixo no VerticalGridView na versão 25.3.1
  • ClassCastException em SimpleArrayMap.allocArrays()

Revisão 25.3.1

Março de 2017

Problemas corrigidos

  • O SwitchCompat requer uma versão mínima do SDK de 14 ou posterior (problema AOSP 251302).
  • A animação baseada em física updateListener pula o primeiro frame.
  • A animação de etiqueta BottomNavigationView está corrompida.

Revisão 25.3.0

Março de 2017

Mudanças importantes

Os metadados da versão da Biblioteca de Suporte serão automaticamente adicionados a AndroidManifest.xml na compilação com o Gradle, o que simplificará o rastreamento de versões públicas. Exemplo:

    <meta-data android:name="android.support.VERSION" android:value="25.3.0" />
    

Suspensões de uso

Alguns métodos e classes foram suspensos nesta versão. Essas APIs suspensas serão removidas em uma versão futura, e os desenvolvedores precisarão migrar para outras. Para saber mais sobre como migrar de uma API específica, consulte a documentação dela.

ExifInterface
O método booleano getLatLong(float[]) foi suspenso. Em vez disso, use o novo método getLatLong(), que não aceita argumentos e retorna double[].
mediacompat
O PlaybackStateCompat.Builder.setErrorMessage(CharSequence) foi suspenso. Em vez disso, use o novo método setErrorMessage(int, CharSequence), que aceita um código de erro e uma descrição opcional.
O EXTRA_SUGGESTION_KEYWORDS foi suspenso. Em vez disso, use a funcionalidade de pesquisa MediaBrowserCompat.
v7.recyclerview
LinearLayoutManager.getInitialItemPrefetchCount() foi renomeado como LinearLayoutManager.getInitialPrefetchItemCount(). O nome antigo ainda é compatível, mas será removido em uma versão futura.

APIs novas e modificadas

appcompat-v7
O novo método ActionBarDrawerToggle.setDrawerSlideAnimationEnabled(boolean) simplifica o modo de desativar a animação do ícone de alternância da gaveta de navegação.
customtabs
Foi adicionada compatibilidade com canais de mensagens. Consulte as referências de CustomTabsService.requestPostMessageChannel() e CustomTabsService.postMessage() para mais detalhes.
dynamic-animation
Nova biblioteca de animação baseada em física que oferece um conjunto de APIs para criar animações que reagem dinamicamente à entrada do usuário.
leanback-v17
Foi adicionada compatibilidade com planos de fundo com efeito paralaxe. Consulte a referência de Parallax para mais detalhes.
O widget TimePicker foi adicionado para escolha de horários em uma interface de TV.
mediacompat
Uma funcionalidade de pesquisa foi adicionada. Consulte as referências de MediaBrowserCompat.search() e MediaBrowserServiceCompat.onSearch() para mais detalhes.
Foi adicionada compatibilidade com os modos de ordem aleatória e repetição. Consulte as referências de MediaSessionCompat.setRepeatMode() e setShuffleModeEnabled() para mais detalhes.

Problemas corrigidos

Revisão 25.2.0

Fevereiro de 2017

Mudanças importantes

Problemas corrigidos

  • Esta versão corrige um problema grave de mediarouter, em que o uso de um dispositivo A2DP e de APIs de roteamento de mídia poderia fazer com que o dispositivo parasse de responder, sendo necessário reiniciar.
  • Agora, a classe FragmentManager.FragmentLifecycleCallbacks é estática.

Problemas corrigidos

  • A exibição de uma apresentação de slides com espelhamento de tela faz com que o dispositivo se desconecte do Wi-Fi
  • O botão de mídia não gerenciava corretamente os apps de mídia que não se registraram com setMediaButtonReceiver()
  • Erro VectorDrawable com recurso de string (problema AOSP 232407)
  • O TextInputLayout se sobrepõe a hints e texto se o texto for definido por XML (problema AOSP 230171)
  • Vazamento de memória em MediaControllerCompat (problema AOSP 231441)
  • O RecyclerViewLayoutTest.triggerFocusSearchInOnRecycledCallback() apresenta falhas
  • O RecyclerView falha ao reciclar proprietários de visualizações (problema AOSP 225762)
  • O getAllowGeneratedReplies() retorna falso incorretamente para ações dentro de um WearableExtender

Revisão 25.1.1

Janeiro de 2017

Importante: há um bug conhecido na classe android.support.v7.media.MediaRouter das revisões 25.1.1 e 25.1.0 da Biblioteca de Suporte. Se seu app usa o MediaRouter v7, atualize para a Revisão 25.2.0 da Biblioteca de Suporte, que corrige esse bug.

Mudanças importantes

  • Transações de fragmento podem ser otimizadas dentro das transações e entre elas. A otimização de operações de transações de fragmento pode eliminar operações canceladas. Por exemplo, suponha que duas transações são executadas simultaneamente, uma que adiciona um fragmento A e outra que substitui o fragmento A por um B. Nesse caso, a primeira operação poderá ser cancelada, e apenas o fragmento B será adicionado. Isso significa que o fragmento A pode não passar pelo ciclo de vida de criação/destruição.

    Um efeito colateral dessa otimização é que os fragmentos podem ter mudanças de estado fora da ordem esperada. Por exemplo, suponha que uma transação adicione o fragmento A, uma segunda adicione o fragmento B e uma terceira remova o fragmento A. Sem a otimização, o fragmento B poderia esperar que, enquanto estivesse sendo criado, o fragmento A também existiria porque seria removido somente após a inclusão do fragmento B. Com a otimização, o fragmento B não sabe se o fragmento A existirá enquanto ele estiver sendo criado, porque a criação e a destruição do fragmento A poderão ser removidas pela otimização.

    Essa otimização fica desativada por padrão. Para ativá-la, chame FragmentTransaction.setAllowOptimization(true).

  • Agora, os fragmentos podem adiar as transições e animações até que estejam prontos usando Fragment.postponeEnterTransition() e Fragment.startPostponedEnterTransition(). Essa API é semelhante a Activity.postponeEnterTransition() e Activity.startPostponedEnterTransition(), usados com transições de atividade.

Problemas corrigidos

Revisão 25.1.0

Dezembro de 2016

Importante: há um bug conhecido na classe android.support.v7.media.MediaRouter das revisões 25.1.1 e 25.1.0 da Biblioteca de Suporte. Se seu app usa o MediaRouter v7, atualize para a Revisão 25.2.0 da Biblioteca de Suporte, que corrige esse bug.

Mudanças importantes

  • Clientes de widgets RecyclerView aninhados (por exemplo, lista de rolagem vertical dentro de listas de rolagem horizontal) podem ter benefícios significativos de desempenho ao sugerir aos gerenciadores de layout dos widgets RecyclerView internos quantos itens precisam ser preparados antes de serem rolados na tela. Chame LinearLayoutManager.setInitialPrefetchItemCount(N), em que N é o número de visualizações visíveis por item interno. Por exemplo, se suas listas internas e horizontais mostram no mínimo três visualizações e meia de itens por vez, é possível melhorar o desempenho chamando LinearLayoutManager.setInitialPrefetchItemCount(4). Isso permite que RecyclerView crie todas as visualizações relevantes mais cedo, enquanto o RecyclerView externo está sendo rolado, o que reduz significativamente a quantidade de travamentos durante as rolagens.
  • FragmentActivity.setSupportMediaController() e FragmentActivity.getSupportMediaController() foram suspensos. Use os novos métodos estáticos MediaControllerCompat.setMediaController() e MediaControllerCompat.getMediaController().
  • Quando um cliente especifica a tonalidade de um widget pela tonalização appcompat (por exemplo, appcompat:buttonTint), o cliente fica responsável por fornecer todos os estados necessários (como "desativado", "pressionado" etc.). Isso é consistente com a maneira com que as tonalizações de widgets são especificadas pelo uso da tonalização de framework.

APIs novas e modificadas

Problemas corrigidos

  • A alternância de visibilidade de senhas apresenta falha nos testes de acessibilidade.
  • O Appcompat não respeita state_enabled em dispositivos anteriores ao Android L.
  • Foi adicionado um mecanismo de recuperação de foco a RecyclerView. Isso também corrigiu o foco corrompido dos fragmentos pref de suporte ao usar a navegação DPAD, como em dispositivos Android TV.
  • Leanback: o BrowseFragment apresenta falhas com cabeçalhos desativados e adaptador vazio.
  • Appcompat: o AlertDialog é muito amplo.
  • O InputContentInfoCompat chama o requestPermission(), quando deveria chamar o releasePermission().
  • o MediaBrowserCompat apresenta falhas.
  • O CoordinatorLayout mede/define visualizações quando a visibilidade é configurada como GONE.
  • Não foi possível tonalizar AnimatedVectorDrawableCompat com nível de API anterior a 24
  • A biblioteca do Leanback aciona erros de lint falsos
  • A biblioteca de paletas causou falhas de teste em todos os níveis de API
  • O RecyclerView foi reprovado em testes de Leanback
  • O RecyclerView falha ao reciclar proprietários de visualizações (problema AOSP 225762)
  • O Fragment.onDestroy() não é chamado para fragmentos na pilha de retorno
  • O scrim CollapsingToolbarLayout não é desenhado ao ser recolhido
  • CoordinatorLayout.offsetChildByInset() gera IllegalArgumentException
  • Animar itens RecyclerView separa RecyclerViews internos, impedindo pré-buscas futuras
  • Itens RecyclerView anexados não podem passar por pré-busca aninhada
  • Os dados de pré-busca para itens RecyclerView aninhados são descartados durante o primeiro layout
  • A pré-busca de RecyclerView falha se dois eventos de arrastamento chegam na mesma posição
  • O RecyclerView apresentará layout de forma especulativa enquanto o RenderThread estiver renderizando
  • Os recursos de cores configurados no "modo noturno" convertidos em Drawables nem sempre são apagados adequadamente do cache de recursos
  • FloatingActionButton: a configuração programática de BackgroundTintList não funciona adequadamente (problema AOSP 227428)
  • TextInputLayout: a fonte não está sendo definida para ErrorView (problema AOSP 227803)
  • O TextInputLayout sempre retorna para a cor clara por erro nas APIs anteriores à 23 (problema AOSP 221992)
  • O FloatingActionButton é exibido como pressionado quando o ponteiro sai de

Veja uma lista completa das correções de bug públicas no Rastreador de problemas do AOSP.

Suspensões de uso

Alguns métodos e classes foram suspensos nesta versão. Essas APIs suspensas serão removidas em uma versão futura, e os desenvolvedores precisarão migrar para outras. Para saber mais sobre como migrar de uma API específica, consulte a documentação dela.

Revisão 25.0.1

Novembro de 2016

Problemas corrigidos

Veja uma lista completa das correções de bug públicas no Issue Tracker do AOSP.

Revisão 25.0.0

Outubro de 2016

Mudanças importantes

  • O construtor ContextCompat foi transformado em protegido. Essa classe não deve ser instanciada publicamente, mas pode ser estendida por bibliotecas de suporte voltadas a níveis de API mais recentes.
  • O construtor ActivityCompat foi transformado em protegido. Essa classe não deve ser instanciada publicamente, mas pode ser estendida por bibliotecas de suporte voltadas a níveis de API mais recentes.
  • O getReferrer(Activity) foi transformado em estático.
  • O android.support.design.widget.CoordinatorLayout.Behavior.isDirty(CoordinatorLayout, V) foi removido. Todas as implementações de cliente desse método precisam ser removidas.
  • O android.support.v4.media.session.MediaSessionCompat.obtain(Context, Object) foi removido. Os usos precisam ser substituídos pelo método fromMediaSession() com nome mais adequado.
  • O android.support.v4.media.session.MediaSessionCompat.QueueItem.obtain(Object) foi removido. Os usos precisam ser substituídos pelo método MediaSessionCompat.QueueItem#fromQueueItem com nome mais adequado.
  • O android.support.v7.widget.Space foi removido. Os usos precisam ser substituídos por android.support.v4.widget.Space.

Novas APIs

  • A classe android.support.design.widget.BottomNavigationView implementa o padrão de navegação inferior (link em inglês) das especificações do Material Design.
  • O novo pacote android.support.v13.view.inputmethod inclui classes para acessar os recursos android.view.inputmethod.InputConnection introduzidos após o nível 13 da API.
  • A classe android.v7.widget.RecyclerView.DividerItemDecoration fornece uma implementação base para os divisores verticais ou horizontais entre itens.
  • Foram adicionados novos estilos decorados a android.support.v7.app.NotificationCompat, DecoratedCustomViewStyle e DecoratedMediaCustomViewStyle, além de classes espelhadas na API de nível 24 da plataforma.

Problemas corrigidos

Veja uma lista completa das correções de bug públicas no Issue Tracker do AOSP.

Revisão 24.2.1

Setembro de 2016

Problemas corrigidos:

Veja uma lista completa das correções de bug públicas no Issue Tracker do AOSP.

Revisão 24.2.0

Agosto de 2016

A versão 24.2.0 contém as seguintes mudanças:

Observação: a versão 24.2.0 removeu a compatibilidade com o Android 2.2 (API de nível 8) e versões anteriores. Classes e métodos que existem apenas para atender a essas versões do sistema agora estão marcados como obsoletos e não serão mais utilizados. Esses métodos e classes obsoletos poderão ser removidos em uma versão futura.

Divisão da Biblioteca de Suporte v4

Com essa versão, a Biblioteca de Suporte v4 foi dividida em vários módulos menores:

support-compat
Oferece wrappers de compatibilidade para as novas APIs do framework, como Context.getDrawable() e View.performAccessibilityAction().
support-core-utils
Oferece várias classes de utilidades, como AsyncTaskLoader e PermissionChecker.
support-core-ui
Implementa uma variedade de componentes relacionados à IU, como ViewPager, NestedScrollView e ExploreByTouchHelper.
support-media-compat
Oferece retrocompatibilidade com partes do framework de mídia, incluindo MediaBrowser e MediaSession.
support-fragment
Oferece retrocompatibilidade com o framework de fragmento. Esse método tem dependências em support-compat, support-core-utils, support-core-ui e support-media-compat.

Para oferecer compatibilidade com versões anteriores, se você listar support-v4 no script do Gradle, seu APK incluirá todos esses módulos. No entanto, para reduzir o tamanho do APK, recomendamos que você liste apenas os módulos específicos necessários para seu app.

Atualizações da API

Mudanças de comportamento

  • Se você usar a funcionalidade de dia/noite da biblioteca appcompat, o sistema agora recriará automaticamente sua atividade sempre que o modo dia/noite mudar (devido ao horário do dia ou a uma chamada para AppCompatDelegate.setLocalNightMode()).
  • O Snackbar agora aparece atrás da barra de navegação se a barra de status é translúcida.

Biblioteca MediaRouter

Os dispositivos Bluetooth não são mais listados como roteamentos de mídia. Agora, o roteamento de áudio para dispositivos Bluetooth é controlado apenas no nível do sistema Android.

Suspensões de uso

Os métodos e classes obsoletos estão sujeitos a remoção em uma versão futura. É necessário migrar dessas APIs o mais rápido possível.

  • Vários métodos das classes a seguir eram necessários apenas para a API 8 e anteriores e não podem mais ser usados. Em vez disso, use as implementações do framework.
    • android.support.v4.view.KeyEventCompat: substitua por KeyEvent
    • android.support.v4.view.MotionEventCompat: use MotionEvent
    • android.support.v4.view.ViewCompat: use View
    • android.support.v4.view.ViewConfigurationCompat: use ViewConfiguration
  • O AccessibilityServiceInfoCompat.getDescription() foi suspenso em favor de AccessibilityServiceInfoCompat.loadDescription(), que retorna uma descrição localizada corretamente.
  • Não instancie a classe ActivityCompat diretamente. O método não estático getReferrer(Activity) será transformado em estático em uma versão futura.
  • O CoordinatorLayout.Behavior.isDirty() foi suspenso e não é mais chamado pelo CoordinatorLayout. Todas as implementações, bem como as chamadas para esse método, precisam ser removidas.
  • O MediaSessionCompat.obtain() foi suspenso e substituído pelo método fromMediaSession(), que tem nome mais adequado.
  • O MediaSessionCompat.QueueItem.obtain() foi suspenso e substituído pelo método fromQueueItem(), com nome mais apropriado.
  • Várias classes abstratas foram suspensas e substituídas por interfaces que refletem melhor os equivalentes do framework.
  • O CustomTabsSession.setToolbarItem() foi suspenso e substituído pelo setSecondaryToolbarViews() baseado em RemoteViews.

Correções de bugs

Os seguintes problemas conhecidos foram corrigidos na versão 24.2.0:

  • O indicador SwipeRefreshLayout é exibido quando setRefreshing(true) é chamado antes do primeiro cálculo de medição (problema AOSP 77712)
  • Foi impedido que TabLayout oscile ao mudar as páginas (problema AOSP 180454)
  • ClassNotFoundException foi evitado ao desfazer a marcação de SavedState na API de nível 11 e anteriores (problema AOSP 196430)

Veja uma lista completa das correções de bug públicas no Issue Tracker do AOSP.

Revisão 24.1.1

Julho de 2016

Problemas corrigidos:

  • Correção de um problema na versão 24.1.0 que afetava os códigos de recursos compartilhados entre as bibliotecas de suporte. Esse problema fazia com que apps que dependiam de bibliotecas de suporte com recursos (como design e appcompat) encontrassem problemas causados por incompatibilidade de códigos de recursos.

Revisão 24.1.0

Julho de 2016

Mudanças na Biblioteca de Suporte v4:

Problemas corrigidos:

  • O TabLayout.setCustomView(null) resulta em NullPointerException (problema AOSP 214753).
  • O TabLayout realça as guias personalizadas de maneira incorreta (problema AOSP 214316).
  • O AppCompatTextHelper usa a matriz de atributos classificados incorretamente (problema AOSP 214366).
  • Não é possível fazer referência ao VectorDrawable do XML de contêiner de drawable ao usar um ContextWrapper personalizado (problema AOSP 214055).
  • O ViewDragHelper.saveLastMotion() gera ArrayIndexOutOfBoundsException (problema AOSP 212945).
  • O BottomSheetBehavior é expandido para a altura do conteúdo antigo ao usar setState(STATE_EXPANDED) (problema AOSP 213660).
  • O CollapsingToolbarLayout não é compatível com filhos fixáveis com margens superiores ou inferiores (problema AOSP 213001).
  • O título de busca Leanback não é compatível com o alinhamento de RTL (problema AOSP 213461).
  • O PagerTabStrip desaparece devido à ausência de anotação herdada (problema AOSP 213359).
  • A vinculação de dados gera NullPointerException ao usar booleanos para definir sinalizações condicionais (problema AOSP 191841).
  • O CoordinatorLayout não responde a setFitsSystemWindows() (problema AOSP 212720).
  • O BottomSheetBehavior falha ao configurar o estado inicial (problema AOSP 203114).
  • O ViewPager pula páginas se o índice da página for um valor grande (problema AOSP 211734).
  • O BottomSheetBehavior não funciona com layouts dinâmicos (problema AOSP 205226)

Revisão 24.0.0

Junho de 2016

Mudanças na Biblioteca de Suporte v4:
  • Inclusão de Fragment.commitNow() para confirmação síncrona.
  • Acréscimo de NotificationCompat.MessagingStyle para conversas entre várias partes.
  • Inclusão de NotificationManagerCompat.areNotificationsEnabled() e getImportance().
  • O MediaSessionCompat agora espelha a funcionalidade do MediaSession e não chama mais o setMediaButtonReceiver() automaticamente.

Observação: apenas o MediaBrowserServiceCompat da versão 24.0.0 é compatível com versões futuras do Android posteriores à API de nível 24. Se você estiver usando versões anteriores, atualize para essa versão para garantir que haja compatibilidade.

Mudanças na Biblioteca appcompat v7:
  • Inclusão de compatibilidade para referenciar objetos ColorStateList com temas a partir de XML.
Mudanças na Biblioteca de Suporte de Design:
Mudanças na Biblioteca Leanback v17:
  • Acréscimo de OnboardingFragment para dar as boas-vindas e oferecer o fluxo de configurações na primeira execução.
Mudanças nas guias personalizadas:
  • Inclusão de compatibilidade para fornecer uma hierarquia de RemoteViews para a barra de ferramentas secundária.
  • Acréscimo de um CustomTabsClient.connectAndInitialize() para aquecimento de uma linha.

Revisão 23.4.0

Maio de 2016

Mudanças na Biblioteca de Suporte v4:
  • Correção de um problema em que fragmentos eram adicionados na ordem errada (problema 206901).
  • Correção de um problema em que a barra de apps não era desenhada ao ser rolada para fora da tela (problema 178037).
Mudanças na Biblioteca appcompat v7:
Mudanças na Biblioteca de Suporte de Design:
Mudanças na Biblioteca de drawables vetoriais:

Revisão 23.3.0

Abril de 2016

Mudanças na Biblioteca de Suporte v4:
  • Inclusão de AppLaunchChecker para ajudar a acompanhar como seu aplicativo foi iniciado pelo usuário no passado. O hasStartedFromLauncher() informa se o usuário iniciou o aplicativo a partir da tela inicial ou de outros meios (por exemplo, para visualizar URLs específicos da Web).
  • Correção de um vazamento de memória em MediaBrowserServiceCompat.mConnections (problema 205220).
  • Correção de um problema em que o ViewPager não considerava as margens ao virar a página (problema 203816).
  • Agora, o Fragment.onRequestPermissionsResult() é entregue aos fragmentos filhos.
Mudanças na Biblioteca appcompat v7:
Mudanças na Biblioteca mediarouter v7:
Mudanças na Biblioteca de preferências v7:
Mudanças na biblioteca recyclerview v7:
Mudanças na Biblioteca de Suporte de Design:

Revisão 23.2.1

Março de 2016

Mudanças na Biblioteca de Suporte v4:
Mudanças na Biblioteca appcompat v7:
  • Reversão da dependência nos recursos de vetor para que os desenvolvedores que usam a biblioteca appcompat não sejam forçados a usar o VectorDrawable e as sinalizações de compilação associadas a ele.
  • Correção de um problema de compatibilidade com o "modo noturno" e o nível 23 da API (problema 201910).
  • Correção de um problema de compatibilidade com o SwitchCompat e o nível 7 da API(. (problema 201942).
  • Correção de um problema com a propagação de valores de configuração em objetos Resources (problema 201928).
  • Correção de um problema de compatibilidade em que o botão de cancelamento android.support.v7.app.NotificationCompat.MediaStyle se tornava invisível na API de nível 21 e anteriores (problema 37095756).
  • Correção de uma falha de compatibilidade com o AppCompatSpinner na API de nível 21 e anteriores (p(.roblema 202246).
  • Correção de um problema em que o estilo app:textAllCaps = "false" não funcionava. (problema 202117).
  • Correção de uma falha ao restaurar o SearchView (problema 201836).
  • Correção de um vazamento de memória que ocorria ao tonalizar recursos drawable usando AppCompat (problema 202379).
  • Correção de um problema com o KeyEvent na API de nível 11 e anteriores (problema 202939).
Mudanças na Biblioteca cardview v7:
Mudanças na biblioteca recyclerview v7:
Mudanças na Biblioteca mediarouter v7:
Mudanças na Biblioteca Leanback v17:
  • Correção de um problema com GridLayout.onAddFocusables() que fazia com que o item errado fosse selecionado.
  • Correção de um problema com ações GuidedStepFragment que desapareciam depois que uma ação era recolhida.
Mudanças na Biblioteca de Suporte de Design:
Mudanças no VectorDrawableCompat:
  • Correção de um bug em que a variável incorreta era lida para android:tintMode (problema 201907).

Revisão 23.2.0

Fevereiro de 2016

Mudanças na Biblioteca de Suporte v4:
  • Inclusão de MediaBrowserCompat para compatibilidade com MediaBrowser e de MediaBrowserServiceCompat para compatibilidade com MediaBrowserService. Isso é útil ao conectar o serviço em segundo plano de um app de mídia a componentes de IU e ao fazer a integração com o Android Auto e o Android Wear sem a necessidade da API 21 ou posterior.
  • Agora, o sistema chama onActivityResult() para uma FragmentActivity aninhada.
Mudanças na Biblioteca appcompat v7:
  • Acréscimo da funcionalidade do "modo noturno" à API de nível 14 e posterior. Alternância entre temas claros e escuros do Material Design com base na hora do dia ou em uma configuração específica do aplicativo.
    • Temas de dia e noite podem ser encontrados em: <sdk>/extras/android/support/v7/appcompat/res/values/themes_daynight.xml
    • AppCompatDelegate.setDefaultNightMode(): define o modo padrão do aplicativo transmitindo uma das seguintes constantes:
      • MODE_NIGHT_AUTO
      • MODE_NIGHT_NO
      • MODE_NIGHT_YES
      • MODE_NIGHT_FOLLOW_SYSTEM
    • AppCompatDelegate.setLocalNightMode(): modifica a configuração de "modo noturno" para o componente de aplicativo local.
    • AppCompatDelegate.getDefaultNightMode(): retorna o "modo noturno" padrão.
Mudanças na Biblioteca mediarouter v7:
Mudanças na Biblioteca de Suporte de Design:
  • Acréscimo de compatibilidade com páginas inferiores. Um plug-in de interação, BottomSheetBehavior, permite que uma visualização filha de um CoordinatorLayout atue como página inferior. A classe base, BottomSheetCallback, fornece callbacks para monitorar eventos de página inferior.
Mudanças na Biblioteca de Suporte de guias personalizadas:
  • As guias personalizadas do Google Chrome agora permitem que os aplicativos incluam uma barra inferior com botões de ação, além do botão de ação superior existente.
  • CustomTabsIntent.Builder.addToolBarItem(): adiciona um botão de ação a uma guia personalizada. Você pode usá-lo para adicionar vários botões.
  • CustomTabsSession.setToolBarItem(): atualiza o aspecto visual dos itens da barra de ferramentas. Esse método só funciona se recebe um código válido e se a sessão do navegador está em primeiro plano.
Inclusão da Biblioteca de Suporte VectorDrawable:
  • Classes adicionadas:
    • VectorDrawableCompat
    • AnimatedVectorDrawableCompat
  • Adiciona compatibilidade com recursos VectorDrawable a aplicativos executados na API de nível 7 ou posterior. Os recursos AnimatedVectorDrawable também são compatíveis com a API de nível 11 ou posterior. Os recursos vetoriais podem ser consideravelmente menores que os recursos de imagem e ajudam a reduzir o tamanho do aplicativo ao diminuir a quantidade de recursos necessários para que haja compatibilidade com várias telas de dispositivos.
  • Essa biblioteca agora é uma dependência da Biblioteca AppCompat v7, permitindo que os desenvolvedores e AppCompat usem drawables vetoriais com facilidade. Para usar o VectorDrawableCompat em ImageButton ou ImageView, use o atributo XML app:srcCompat ou o método setImageResource().
  • Para continuar referenciando códigos de atributo na API de nível 20 ou anterior, adicione a seguinte sinalização appt ao seu arquivo build,gradle:
    • Se você está compilando com o plug-in do Android para Gradle 1.5.0 ou anterior, adicione o seguinte ao arquivo build.gradle:
    •     android {
            defaultConfig {
              // Stops the Gradle’s automatic rasterization of vectors
              generatedDensities = []
            }
             // Flag that tells aapt to keep the attribute ids
            aaptOptions {
              additionalParameters "--no-version-vectors"
            }
          }
          
    • Se você está compilando com o plug-in do Android para Gradle 2.0.0 ou posterior, adicione o seguinte ao seu arquivo build.gradle:
    •     android {
            defaultConfig {
              vectorDrawables.useSupportLibrary = true
            }
          }
          
Mudanças na Biblioteca Leanback v13:
  • Acréscimo de novos recursos a GuidedStepFragment, que é um componente que orienta os usuários em uma decisão ou série de decisões:
    • Inclusão de ações de botão a GuidedAction:
      • GuidedStepFragment.setButtonActions(): define uma lista de botões GuidedAction que o usuário pode selecionar na visualização "Actions".
    • Os campos de descrição agora podem ser editados:
      • GuidedAction.Builder.descriptionEditable(): ao transmitir true, configura a descrição da ação como editável.
      • GuidedAction.getEditDescription(): retorna a descrição editável como um CharSequence.
    • Acréscimo de listas suspensas de subações:
      • GuidedAction.setSubActions(): define uma lista GuidedAction como um menu suspenso de subações.
  • Acréscimo do widget GuidedDatePickerAction à funcionalidade DatePicker:
    • A data é selecionada usando as colunas de ano, mês e dia e tem um intervalo personalizável.
    • GuidedDatePickerAction.Builder: classe builder para o objeto GuidedDatePickerAction.
    • GuidedDatePickerAction.Builder.datePickerFormat(String datePickerFormat): define o formato de data desejado transmitindo o String com três caracteres, por exemplo, “YMD” ou “MDY”. Como alternativa, use o atributo XML datePickerFormat.
Mudanças na Biblioteca RecyclerView v7:
  • O RecyclerView agora tem um recurso de ativação chamado AutoMeasure, que permite que o RecyclerView.LayoutManager agrupe facilmente o conteúdo ou gerencie várias especificações de medição fornecidas pelo pai da RecyclerView. Ele é compatível com todos os recursos de animação existentes do RecyclerView.
    • Se você tem um RecyclerView.LayoutManager personalizado, chame setAutoMeasureEnabled(true) para começar a usar a nova API AutoMeasure. Todos os objetos RecyclerView.LayoutManager integrados permitem a medição automática por padrão.
    • O RecyclerView.LayoutManager deixou de ignorar algumas configurações RecyclerView.LayoutParams, como MATCH_PARENT na direção de rolagem.

      Observação: essas restrições aumentadas podem causar um comportamento inesperado nos seus layouts. Verifique se os parâmetros de layout corretos foram especificados.

  • Ao atualizar um RecyclerView.ViewHolder com informações de payload, o DefaultItemAnimator agora desativa animações de mudanças.
  • Agora é possível modificar a velocidade de escape do ItemTouchHelper para controlar a sensibilidade ao toque. Para facilitar ou dificultar o deslizar, substitua getSwipeEscapeVelocity(float defaultValue) e modifique defaultValue.

Revisão 23.1.1

Novembro de 2015

Mudanças na Biblioteca recyclerview v7:
  • Correção de uma falha que ocorre quando você executa uma ação de deslizar para dispensar que a classe de utilitário ItemTouchHelper fornece e, em seguida, adiciona um item (problema 190500).
Mudanças na biblioteca de preferências v7:
Mudanças na Biblioteca de Suporte Leanback v17:
  • Correção de vários problemas internos dessa biblioteca.
Mudanças na Biblioteca de Suporte de design:
  • Inclusão do método getHeaderView à classe NavigationView.
  • Correção de um problema de plano de fundo transparente para um objeto FloatingActionButton em dispositivos com o Android 4.0 (API de nível 15) ou versões anteriores (problema 183315).

Revisão 23.1.0

Outubro de 2015

Mudanças na Biblioteca de Suporte v4:
  • Inclusão de compatibilidade com a interface OnScrollChangedListener ao widget NestedScrollView. Ela permite que você receba callbacks quando as posições de rolagem X ou Y mudam.
  • Acréscimo de uma classe MediaButtonReceiver para encaminhar os controles de reprodução recebidos a um serviço que gerencia a classe MediaSessionCompat. A classe MediaSessionCompat tem um construtor que pode encontrar automaticamente um receptor de botão de mídia no manifesto. Um receptor de botão de mídia é uma parte importante para gerenciar os controles de reprodução dos controles de hardware ou Bluetooth.
Mudanças na Biblioteca appcompat v7:
  • Inclusão de widgets Seekbar e ImageButton do Material Design.
  • O widget ImageView foi atualizado para ser compatível com o recurso de tonalização.
  • Atualização da aparência do widget SwitchCompat.
Mudanças na Biblioteca mediarouter v7:
  • Os seguintes recursos foram adicionados à classe MediaRouteChooserDialog:
    • Exibe uma página de carregamento ao descobrir provedores de roteamento de mídia.
    • Inclui um ícone de tipo de dispositivo para facilitar a identificação.
    • Classifica os roteamentos de acordo com a frequência de uso no aplicativo atual.
    • Compatível com o modo paisagem.
  • Os seguintes recursos foram adicionados à classe MediaRouteControllerDialog:
    • Reconhece a transmissão de tela e fornece uma descrição adequada.
    • É compatível com vários tamanhos de arte de álbum e proporções e carrega a arte de forma assíncrona.
    • Seleciona automaticamente a cor do conteúdo com base na cor principal do aplicativo.
    • Ajusta o layout da caixa de diálogo com base no espaço de tela disponível no dispositivo.
    • Compatível com o modo paisagem.
Mudanças na Biblioteca de paletas v7:
  • O método setRegion() foi adicionado para oferecer compatibilidade com a extração de cor de uma parte específica de um objeto Bitmap.
Mudanças na Biblioteca recyclerview v7:
  • Acréscimo de uma API de animação aprimorada à classe ItemAnimator para personalizações melhores:
    • Animações de mudança não precisam mais aplicar duas cópias do objeto ViewHolder, que ativa as animações de conteúdo do item. Além disso, o objeto ItemAnimator decide se quer reutilizar o mesmo objeto ViewHolder ou criar outro.
    • A nova API de registro de informações oferece à classe ItemAnimator a flexibilidade de coletar dados no ponto correto do ciclo de vida do layout. Essas informações são transmitidas posteriormente para os callbacks de animação.
  • Fornecimento de um plano de transição fácil para essa alteração de API incompatível com versões anteriores:
    • Se você já tiver estendido o ItemAnimator anteriormente, poderá alterar a classe base para SimpleItemAnimator, e seu código funcionará como antes. A classe SimpleItemAnimator fornece a API antiga agrupada com a nova API.
    • Alguns métodos foram removidos da classe ItemAnimator. O seguinte código não será mais compilado:
    • Kotlin

          recyclerView.itemAnimator.supportsChangeAnimations = false
          

      Java

          recyclerView.getItemAnimator().setSupportsChangeAnimations(false)
          

      Você pode substituí-lo pelo seguinte:

      Kotlin

          val animator: SimpleItemAnimator? = recyclerView.itemAnimator as? SimpleItemAnimator
          animator?.supportsChangeAnimations = false
          

      Java

          ItemAnimator animator = recyclerView.getItemAnimator();
          if (animator instanceof SimpleItemAnimator) {
             ((SimpleItemAnimator) animator).setSupportsChangeAnimations(false);
          }
          
Alterações na Biblioteca de Suporte de Preferências v7, v14, e v17:
  • Remoção de APIs para controlar caixas de diálogo EditText.
Mudanças na Biblioteca de Suporte Leanback v17:
  • Inclusão de uma versão da classe GuidedStepFragment para a Biblioteca de Suporte (estende android.support.v4.app.Fragment) e melhoria em animações e transições.
  • A classe GuidedStepFragment foi atualizada para que possa ser colocada sobre o conteúdo existente.
  • Acréscimo da capacidade de anotar diferentes tipos de conclusões de pesquisa para a classe SearchFragment.
  • Inclusão de compatibilidade escalonada de transição de slides para a classe VerticalGridFragment.
Mudanças na Biblioteca de Suporte de design:
  • Inclusão de compatibilidade com a contagem de caracteres ao widget TextInputLayout.
  • Acréscimo de compatibilidade com o ajuste de bordas à classe AppBarLayout, adicionando a constante SCROLL_FLAG_SNAP. Quando a rolagem terminar, se a visualização estiver parcialmente visível, ela será ajustada e rolada até a borda mais próxima.
  • Inclusão de compatibilidade com visualizações personalizadas à classe NavigationView usando o atributo app:actionLayout ou o método MenuItemCompat.setActionView().
Mudanças na Biblioteca de Suporte de guias personalizadas:
  • Acréscimo do método enableUrlBarHiding() à classe CustomTabsIntent. Ele permite que o cliente personalize se a barra de URL ficará oculta automaticamente ao rolar para baixo.
  • Acréscimo do método setActionButton() à classe CustomTabsSession. Ele permite que o cliente mude o ícone de um botão de ação personalizado em uma guia personalizada já iniciada.
  • Inclusão das constantes TAB_SHOWN e TAB_HIDDEN como novos eventos para o método onNavigationEvent da classe CustomTabsCallback.

Revisão 23.0.1

Setembro de 2015

Mudanças na Biblioteca de Suporte de preferências v7 e v14:
  • Acréscimo do layout do Material Design e dos arquivos de estilo (problema 183376).
Mudanças na Biblioteca appcompat v7:
  • Correção dos problemas de falhas da classe Fragment limitando o uso de camadas de hardware ao Android 4.1 (API de nível 16) e versões posteriores (problema 183896).
  • Correção de um problema em que os botões físicos não funcionavam quando uma atividade havia configurado a classe Toolbar para agir como o ActionBar usando o método setSupportActionBar() (problema 183334).
  • A classe AppCompatDialogFragment foi atualizada para não gerar mais o erro Windows feature must be requested before adding content (problema 183186).
Mudanças na Biblioteca de Suporte de design:
Mudanças na Biblioteca de Suporte de guias personalizadas:
  • Diminuição do valor da minSdkVersion de 16 para 15 para compatibilidade com as versões.
  • Acréscimo de uma maneira de gerar um CustomTabsSessionToken a partir de uma intent.

Revisão 23

Agosto de 2015

Acréscimo de novas bibliotecas de suporte:

Para ver uma lista completa das mudanças na Biblioteca de Suporte, consulte o Relatório de diferenças da API da Biblioteca de Suporte.

Revisão 22.2.1

Julho de 2015

Mudanças na Biblioteca de Suporte de design:
  • Os métodos hide() e show() foram adicionados à classe FloatingActionButton para acionar animações de forma programática.
  • Acréscimo da constante LENGTH_INDEFINITE à classe Snackbar para mostrar um snackbar até que ele seja dispensado ou outro seja exibido. Além disso, foram adicionados os métodos setActionTextColor(int) e setActionTextColor(ColorStateList).
  • O método getSelectedTabPosition() foi adicionado à classe TabLayout para recuperar a guia selecionada no momento.
  • Fornecimento de uma API totalmente fluente para a classe android.support.v7.app.NotificationCompat.MediaStyle para o encadeamento de métodos.
  • Acréscimo de métodos de conveniência a RecyclerView para a inserção de itens em lote.

Para ver uma lista completa das mudanças na Biblioteca de Suporte, consulte o Relatório de diferenças da API da Biblioteca de Suporte.

Revision 22.2.0

Maio de 2015

Acréscimo da Biblioteca de Suporte de design:
  • Inclusão do TextInputLayout para exibir hint e erro de texto de EditText como etiquetas flutuantes.
  • Acréscimo do FloatingActionButton para implementar uma ação principal em sua interface como botão de ação flutuante, compatível com tamanhos padrão ou mini.
  • Adição de Snackbar para fornecer feedback leve com uma ação opcional em um snackbar animado.
  • Inclusão do TabLayout para implementação de guias fixas e roláveis, bem como fácil integração com ViewPager.
  • Inclusão do NavigationView para implementar o conteúdo da gaveta de navegação, incluindo a capacidade de inflar itens do menu por meio de um Recurso de menu.
  • Acréscimo do CoordinatorLayout, um layout de uso geral, usado para criar dependências entre visualizações irmãs e permitir reações de rolagem fáceis entre os componentes por meio do CoordinatorLayout.Behavior. Muitos dos componentes da Biblioteca de design dependem de ser filho de um CoordinatorLayout.
  • Adição do AppBarLayout, um contêiner para um Toolbar e outras visualizações (como TabLayout) reagirem a eventos de rolagem rolando para fora da tela, tornando-se visíveis em reação a uma rolagem para baixo ou recolhendo/expandindo antes de rolar para cima/para baixo na tela.
  • Acréscimo do CollapsingToolbarLayout para controlar como um Toolbar é recolhido. Uma barra de ferramentas pode ser recolhida fixando componentes à parte superior da tela enquanto ela recolhe, introduzindo rolagem parallax de componentes como ImageView ou adicionando uma cor scrim de conteúdo quando a visualização é parcialmente recolhida.
Mudanças na Biblioteca de Suporte v4:
Mudanças na Biblioteca appcompat v7:

Para ver uma lista completa das mudanças na Biblioteca de Suporte, consulte o Relatório de diferenças da API da Biblioteca de Suporte.

Revisão 22.1.0

Abril de 2015

Mudanças na Biblioteca de anotações:
  • A Biblioteca de anotações foi adicionada para oferecer compatibilidade com inspeções de código avançado. As anotações são adicionadas como tags de metadados anexadas a variáveis, parâmetros e valores de retorno para inspecionar valores de retorno de métodos, parâmetros transmitidos e variáveis e campos locais.
Mudanças na Biblioteca de Suporte v4:
Mudanças na Biblioteca appcompat v7:
Mudanças na Biblioteca Leanback v17:
Mudanças na Biblioteca recyclerview v7:
Mudanças na Biblioteca renderscript v8:

Revisão 22

Março de 2015

Mudanças na Biblioteca de Suporte v4:
Mudanças na Biblioteca appcompat v7:
Mudanças na Biblioteca Leanback v17:
  • Os métodos getRecycledPoolSize() e setRecycledPoolSize() foram adicionados para permitir tamanhos personalizados de pools reciclados.
  • O atributo WRAP_CONTENT foi adicionado à configuração de largura do layout para oferecer compatibilidade com o conteúdo agrupado de ícones de título.
  • O R.transition foi definido em XML para melhorar as atualizações de transição.
  • A compatibilidade com layouts da direita para a esquerda foi ativada.
  • Foi adicionada compatibilidade com a reprodução e pausa de eventos de chave de mídia para a classe PlaybackOverlayFragment.
  • Inclusão de transições de entrada e retorno à classe BrowseFragment e à classe DetailsFragment.
  • O método replace() foi adicionado para substituir itens na matriz de adaptador de um objeto.
Mudanças na Biblioteca mediarouter v7:
Mudanças na Biblioteca recyclerview v7:

Revisão 21.0.3

Dezembro de 2014

Mudanças na Biblioteca de Suporte v4:

Revisão 21.0.2

Novembro de 2014

Mudanças na Biblioteca de Suporte v4:
Mudanças na Biblioteca appcompat v7:
  • Acréscimo do construtor PopupMenu para oferecer compatibilidade com novos menus pop-up.
  • Adição de compatibilidade com uma descrição de um ícone "Recolher" na classe Toolbar.
  • O widget SearchView foi atualizado para oferecer compatibilidade com a exibição de commitIcon.
  • O atributo buttonGravity foi removido da classe Toolbar.
Mudanças na Biblioteca cardview v7:
Mudanças na Biblioteca recyclerview v7:
Mudanças na Biblioteca Leanback v17:
  • Adição de compatibilidade para gerar fragmentos de código da v4.
  • A cor de texto secundária em CardView foi alterada.

Revisão 21.0.1

Novembro de 2014

Inclusão da Biblioteca de Suporte multidex para oferecer compatibilidade com vários arquivos Dalvik executáveis (DEX) para arquivos multidex anteriores ao Android 5.0.

Revisão 21

Outubro de 2014

Mudanças na Biblioteca de Suporte v4:
  • Adição de compatibilidade para transições Fragment para dispositivos com Android 5.0 (API nível 21). Lembre-se de que as transições não afetam dispositivos com Android 4.4 ou versões anteriores.
  • Acréscimo de DocumentFile para facilitar a transição de File ao trabalhar com árvores de documentos. No entanto, essa classe exige mais sobrecarga de processamento em comparação com a API DocumentsContract da plataforma adicionada ao Android 4.4 (API nível 19). Portanto, use DocumentsContract quando estiver usando o Android 4.4 ou versões posteriores.
Mudanças na Biblioteca appcompat v7:
  • Adição de compatibilidade para interfaces do usuário Material Design.
  • Inclusão de Toolbar, que generaliza a funcionalidade de ActionBar para uso em layouts de aplicativos.
  • Atualização do ActionBarDrawerToggle, que contém a animação do menu com setas.
  • Atualização de widgets comuns da interface do usuário para permitir tonalização por meio de atributos de temas ao serem executados em dispositivos anteriores ao Android 5.0
  • Adição de SwitchCompat, uma retrocompatibilidade do widget Switch que foi adicionada no Android 4.0 (API de nível 14).
Nova Biblioteca cardview v7:
  • Adição do widget CardView, que fornece uma implementação compatível com Material Design para exibir itens de dados.
Nova Biblioteca recyclerview v7:
  • Acréscimo do widget RecyclerView, que fornece uma visualização de lista flexível para o fornecimento de uma janela limitada a um grande conjunto de dados.
Nova Biblioteca de paletas v7:
  • Adição da classe Palette, que permite extrair cores proeminentes de uma imagem.
Nova Biblioteca Leanback v17:

Revisão 20

Julho de 2014

Mudanças na Biblioteca de Suporte v4:

Revisão 19.1.0

Março de 2014

Mudanças na Biblioteca de Suporte v4:
  • A classe SwipeRefreshLayout foi adicionada, o que permite que os usuários atualizem o conteúdo de uma visualização com um gesto de deslizar vertical.
  • Correção de problemas de acessibilidade com gavetas de navegação.
Mudanças na Biblioteca appcompat v7:
  • Correção de problemas em segundo plano com a barra de ações.

Revisão 19.0.1

Dezembro de 2013

Mudanças na Biblioteca de Suporte v4:
Mudanças na Biblioteca mediarouter v7:
Mudanças na Biblioteca renderscript v8
  • Adição de propagação de erro para a camada de thunking do RenderScript.

Revisão 19

Outubro de 2013

Mudanças na Biblioteca de Suporte v4:
Mudanças na Biblioteca mediarouter v7:
  • Adição de compatibilidade com a fila de reprodução de mídia, definição de valores de cabeçalho HTTP e duração de reprodução de mídia.
  • Inclusão explícita de ações de início, saída e fim da sessão para gerenciar explicitamente as sessões de reprodução de mídia com o roteador de mídia.

Revisão 18

Julho de 2013

Mudanças na Biblioteca de Suporte v4:
  • Interface do usuário
    • Adição de BidiFormatter para gerenciamento de strings de texto que combinam o texto formatado da direita para a esquerda e da esquerda para a direita.
    • Modificação de ViewPager para gerenciar melhor casos em que o pager tem uma largura medida de zero no processamento de layout inicial.
    • Modificação de DrawerLayout e SlidingPaneLayout para não gerar exceções para a medição enquanto o código do projeto estiver sendo editado.
  • Acessibilidade
  • Mídia
    • Adição da classe auxiliar TransportMediator para gerenciar o controle de transporte de mídia, como reproduzir, pausar, pular e outras ações de mídia.
    • Acréscimo de DisplayManagerCompat para gerenciar a saída de exibição para uma ou mais telas de dispositivos.
  • Outras mudanças
    • Adição da classe auxiliar WakefulBroadcastReceiver para implementar um padrão comum de detecção de um evento de ativação de dispositivo e transmissão de trabalho para um Service ao mesmo tempo em que se garante que o dispositivo não volte à inatividade antes da conclusão da transferência.
    • Adição de duas novas APIs, commitContentChanged() e rollbackContentChanged(), a AsyncTaskLoader para ajudar a lidar com atualizações em segundo plano para alterações de dados que forem canceladas posteriormente.
Nova Biblioteca appcompat v7:
  • Adição de ActionBar para permitir a implementação do padrão de design da interface do usuário da barra de ações no Android 2.1 (API de nível 7) ou versões posteriores. O uso dessa classe requer que você implemente sua atividade estendendo a nova classe ActionBarActivity.
Nova Biblioteca mediarouter v7:

Adição de uma nova biblioteca mediarouter que oferece compatibilidade com a versão de pré-lançamento para desenvolvedores do Google Cast. As APIs da Biblioteca mediarouter v7 fornecem um meio de controlar o roteamento de canais de mídia e streams do dispositivo atual para telas externas, alto-falantes e outros dispositivos de destino, com compatibilidade para o Android 2.1 (API de nível 7). Consulte a Biblioteca mediarouter V7 para saber mais.

As APIs da biblioteca mediarouter v7, introduzidas na Biblioteca de Suporte r18, estão sujeitas a mudanças em revisões posteriores de Biblioteca de Suporte. Neste momento, recomendamos o uso da biblioteca somente em conexão com a pré-visualização do desenvolvedor do Google Cast.

Revisão 13

Maio de 2013

Mudanças na Biblioteca de Suporte v4:
Nova Biblioteca gridlayout v7:
  • Adição de GridLayout para oferecer compatibilidade com o objeto de layout GridLayout.
  • Acréscimo do android.support.v7.widget.Space, que pode ser usado para criar áreas em branco dentro de um objeto de layout GridLayout.

Revisão 12

Fevereiro de 2013

Mudanças na Biblioteca de Suporte v4:
  • Melhor comportamento de interação para ViewPager.
  • Correção de um bug que poderia fazer com que ViewPager selecionasse a página errada.
  • Correção do uso do método removeView() durante o layout para ViewPager.
  • Correção do problema com SearchViewCompat, em que o uso do botão "Voltar" para dispensar não limpava o texto da pesquisa. Essa correção se aplica somente aos níveis 14 ou posteriores da API do host.

Revisão 11

Novembro de 2012

Mudanças na Biblioteca de Suporte v4:

Revisão 10

Agosto de 2012

Mudanças na Biblioteca de Suporte v4:
  • Adição de compatibilidade com os recursos de notificação introduzidos no Android 4.1 (API de nível 16) com adições a NotificationCompat.

Revisão 9

Junho de 2012

Mudanças na Biblioteca de Suporte v4:
  • Compatibilidade com a interface do usuário
    • Adição de compatibilidade com PagerTabStrip, oferecendo funcionalidade aprimorada além de PagerTitleStrip.
    • Correção de vários bugs para PagerTitleStrip e PagerTabStrip, incluindo a opção setAllCaps, alinhamento de títulos, melhorias na aparência, restrições de largura mínima e problemas de navegação por toque.
    • Adição de compatibilidade com margens de página ViewPager, o que ajuda a classe ViewPager a oferecer compatibilidade com a paginação para conteúdo com um grande intervalo de rolagem horizontal, como um mapa.
    • Correção de vários bugs para ViewPager, incluindo problemas de alteração de tamanho e conjunto de dados, posicionamento da página, interação do usuário, rastreamento de rolagem e problemas de navegação pelo teclado.
    • Correção de muitos bugs para Fragment, incluindo o gerenciamento adequado de onActivityResult() quando o fragmento de destino não existir mais, envio de eventos de seleção para fragmentos invisíveis, melhora no comportamento FragmentTransaction.replace() e adição de um melhor gerenciamento de estado para fragmentos movidos para fora da visualização.
    • Adição de compatibilidade com o método postOnAnimation() em ViewCompat.
    • Atualização de NavUtils para usar a funcionalidade de navegação Up do Android 4.1 (API nível 16), quando disponível.
  • Acessibilidade
    • Atualização das classes de compatibilidade com acessibilidade, incluindo AccessibilityNodeInfoCompat, para seguir as correções feitas no Android 4.1 (API de nível 16).
    • Adição de compatibilidade com ações de rolagem de acessibilidade em ViewPager.
  • Melhorias gerais

Revisão 8

Abril de 2012

Mudanças na Biblioteca de Suporte v4:
  • Correção das sinalizações de intent para objetos PendingIntent gerados por TaskStackBuilder.
  • Remoção dos atributos não utilizados dos projetos da Biblioteca gridlayout para garantir que a biblioteca possa ser criada com a API de nível 7 ou posterior.
  • Adição de arquivos .classpath e .project ao projeto da Biblioteca gridlayout.

Revisão 7

Março de 2012

Mudanças na Biblioteca de Suporte v4:
  • Adição de ShareCompat, que fornece classes auxiliares para enviar e receber conteúdo para aplicativos de compartilhamento em redes sociais, incluindo novos metadados para atribuir dados compartilhados ao app de origem. Essa classe também oferece uma integração compatível com o novo ShareActionProvider no Android 4.0.
  • Adição de NavUtils e TaskStackBuilder para oferecer compatibilidade com a implementação das diretrizes do Design do Android para navegação. Essas adições incluem uma maneira de implementar o botão Para cima da barra de ações nas versões. Para ver um exemplo de implementação desse padrão, consulte a amostra AppNavigation em (<em><sdk></em>/samples/<em><platform></em>/AppNavigation).
  • Adição de NotificationCompat.Builder para fornecer uma implementação de compatibilidade da classe auxiliar Notification.Builder do Android 3.0 para criar notificações do sistema padronizadas.

Revisão 6

Dezembro de 2011

Observação: há referências para APIs de Biblioteca de Suporte disponíveis com as referências de framework, por exemplo: android.support.v4.app.

Mudanças na Biblioteca de Suporte v4:
  • Mudanças no ViewPager:
    • Adição de compatibilidade com a visualização decorativa para ViewPager. As visualizações decorativas podem ser fornecidas como visualizações filhas de um pager no layout XML.
    • Acréscimo de PagerAdapter.getPageTitle() para fornecer strings de título para páginas, que por padrão não têm título para cada página.
    • Adição de PagerTitleStrip, uma faixa de título não interativa, que pode ser adicionada como filha do ViewPager. Os desenvolvedores podem fornecer a cor e a aparência do texto, bem como o dimensionamento do layout e as informações sobre a gravidade.
    • Atualização dos métodos PagerAdapter para capturar objetos ViewGroup em vez de View para evitar a transmissão de classes em implementações de adaptadores.
    • Atualização de ViewPager para usar o comportamento de rolagem rápida no estilo da tela de início.
    • Correções de bugs na interação com a interface do usuário e na automação de testes.
  • Compatibilidade com fragmentos:
    • O método setStartDeferred() foi alterado para setUserVisibleHint(boolean).
    • Adição do início adiado para páginas fora da tela para melhorar o desempenho.
  • Compatibilidade com APIs de acessibilidade:
    • Atualização dos métodos AccessibilityDelegateCompat para retornar listas vazias, em vez de nulas.
    • Adição de novas APIs necessárias às amostras da v4.

Revisão 5

Dezembro de 2011

Mudanças na Biblioteca de Suporte v4:

Revisão 4

Outubro de 2011

Mudanças na Biblioteca de Suporte v4:
  • Adição de EdgeEffectCompat para oferecer compatibilidade com EdgeEffect.
  • Adição de LocalBroadcastManager para permitir que os aplicativos se registrem e recebam intents facilmente em um único aplicativo sem transmiti-los globalmente.
  • Adição de compatibilidade com ViewCompat para verificar e definir modos de overscroll para Views no Android 2.3 e versões posteriores.
  • Mudanças nas APIs de fragmento:
    • Adição de novas APIs para controlar a visibilidade de novos menus.
    • Adição de APIs de animação personalizadas.
    • Adição de APIs em FragmentActivity para manter dados de instâncias personalizadas e sem configuração.
    • Várias correções de bugs.
  • Correção de um bug Loader que causava problemas no cancelamento de AsyncTasks durante a execução no Froyo e em versões mais antigas da plataforma. O código de suporte agora usa a própria versão de AsyncTask manter o mesmo comportamento em todas as versões da plataforma.

Revisão 3

Julho de 2011

Mudanças na Biblioteca de Suporte v4:
  • Adiciona compatibilidade com Fragment.SavedState
  • Adiciona MotionEventCompat para oferecer compatibilidade com APIs MotionEvent mais recentes
  • Adiciona VelocityTrackerCompat para oferecer compatibilidade com APIs de um VelocityTracker mais recente
  • Adiciona ViewConfigurationCompat para oferecer compatibilidade com APIs de um ViewConfiguration mais recente
  • Todas as novas APIs (disponíveis apenas na Biblioteca de Suporte) permitem criar interfaces de usuário com paginação horizontal, permitindo que os usuários deslizem para a esquerda e para a direita entre visualizações de conteúdo. As classes dessa compatibilidade incluem:
    • ViewPager: um ViewGroup que gerencia o layout das visualizações filhas, entre as quais o usuário pode deslizar.
    • PagerAdapter: um adaptador que preenche o ViewPager com as visualizações que representam cada página.
    • FragmentPagerAdapter: uma extensão de PagerAdapter para virar entre um fragmento e outro.
    • FragmentStatePagerAdapter: uma extensão de PagerAdapter para alternar entre fragmentos que usa o suporte da biblioteca para Fragment.SavedState.
Nova Biblioteca de Suporte da v13:
  • Inclui FragmentPagerAdapter e FragmentStatePagerAdapter para oferecer compatibilidade com a paginação horizontal.

    Eles são exatamente iguais às APIs adicionadas à Biblioteca de Suporte v4, mas dependem de outros componentes da plataforma no Android 3.2. Use essa biblioteca em vez da v4 se você estiver desenvolvendo para o Android 3.2 e versões posteriores (todas as outras APIs da biblioteca v4 já estão disponíveis com o nível 13 da API).

Revisão 2

Maio de 2011

Mudanças na biblioteca v4:

Revisão 1

Março de 2011

Versão inicial com a Biblioteca v4.