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
- Nova classe
JobIntentService
, para ajudar os desenvolvedores a programar tarefas de uma forma que obedeça aos novos limites da execução em segundo plano do Android O.
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()
eFragmentActivity.getSupportMediaController()
foram removidos. Use os novos métodos estáticosMediaControllerCompat.setMediaController()
eMediaControllerCompat.getMediaController()
.BottomNavigationView
agora chamaonNavigationItemReselected()
, em vez deonNavigationItemSelected()
, quando um item já selecionado é selecionado novamente.- Todas as instâncias do método
findViewById()
agora retornam<T extends View> T
, em vez deView
. 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)
quantosomeMethod(TextView)
passarem o resultado de uma chamada parafindViewById()
. - 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 (comoActivity.findViewById()
) precisarão que o tipo de retorno seja atualizado.
- Isso pode fazer com que o código existente tenha um tipo de retorno ambíguo, por exemplo, se tanto
Novas APIs
-
FragmentManager
eFragment
têm um métodoisStateSaved()
que permite consultar se uma transação será ou não permitida sem perda de estado. É útil verificar isso especialmente ao gerenciar um eventoonClick()
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 comoandroid: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
quantoFlingAnimation
agora podem animar um valor flutuante sem precisar de umView
ouObject
para se associar.
Para mais informações, consulte as páginas de visualização de Animação de mola e Animação com rolagem.
- Novo
-
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 comTextView.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:
eandroid:
.
-
- 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.
- Novo
-
Biblioteca de compatibilidade com emojis:
-
O
EmojiCompat
pode processar determinadoCharSequence
e adicionarEmojiSpans
. -
EmojiTextView
e outros widgets para exibir emojis. -
FontRequestEmojiCompatConfig
para solicitar uma fonte de emoji a um provedor de fontes.
-
O
-
Dimensionamento automático do TextView:
- Novos métodos no
TextViewCompat
, bem como atributos XML, para controlar o dimensionamento automático emTextView
.
- Novos métodos no
- 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 comPlaybackTransportRowPresenter
e é compatível com a busca. - Nova classe base
PlaybackSeekDataProvider
para o app fornecer miniaturas de busca paraPlaybackTransportControlGlue
.
- Novo
- 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 emPreference
ePreferenceManager
.
-
O
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, oView
inicia a animação desde o começo. Correção transferida do framework do Android. -
O
Transition.Fade
ignora o alfa inicial deView
(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 deFragmentManager
. A execução reentrante de transações não é segura, e agora oFragmentManager
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étodogetLatLong()
, que não aceita argumentos e retornadouble[]
. mediacompat
- O
PlaybackStateCompat.Builder.setErrorMessage(CharSequence)
foi suspenso. Em vez disso, use o novo métodosetErrorMessage(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 pesquisaMediaBrowserCompat
. v7.recyclerview
LinearLayoutManager.getInitialItemPrefetchCount()
foi renomeado comoLinearLayoutManager.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()
eCustomTabsService.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()
eMediaBrowserServiceCompat.onSearch()
para mais detalhes. - Foi adicionada compatibilidade com os modos de ordem aleatória e repetição. Consulte as referências de
MediaSessionCompat.setRepeatMode()
esetShuffleModeEnabled()
para mais detalhes.
Problemas corrigidos
- O
StaggeredGridLayoutManager
geraIllegalArgumentException
(problema AOSP 230295) - A pré-busca de
RecyclerView
não processa corretamente umRecyclerView
que está anexado, mas não na tela - O
LinearLayout
não é reconhecido pela Robolectric - Quando
Activity
é destruído,onActivityCreated()
é chamado inadequadamente pelos fragmentos - O construtor
AppCompatImageView
causaArrayIndexOutOfBoundsException
- Desempenho insatisfatório da IU na transição da atividade
Call.Details
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 umWearableExtender
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()
eFragment.startPostponedEnterTransition()
. Essa API é semelhante aActivity.postponeEnterTransition()
eActivity.startPostponedEnterTransition()
, usados com transições de atividade.
Problemas corrigidos
-
MediaSessionCompatTest
falha comIllegalArgumentException
-
DetailsFragment.installTitleView()
não é chamado na 25.1.0 - A transação de fragmento mantém a visualização fantasma na saída (problema AOSP 230679)
-
O
BottomNavigationView
precisa de espaçamento entre o ícone e o texto do item (problema AOSP 230653) - Alguns listeners estão faltando nos novos
PlaybackFragment
ePlaybackSupportFragment
-
O foco em
TextInputLayout
não muda adequadamente no emulador da versão 25.1.0 da Biblioteca de Suporte (problema AOSP 230461) - Não é possível substituir o menu de um
BottomNavigationView
(problema AOSP 230343) -
O
RecyclerView
comStaggeredGridLayoutManager
falha com itens de abrangência completa (problema AOSP 230295) - Falha em
MediaSessionCompat
ao usarsetCallback(null)
-
PlaybackGlueHostOld
ePlaybackSupportGlueHostOld
não notificam callbacks quando a linha de reprodução muda -
O
/test
do exemploPlaybackOverlayFragment
não inicia a reprodução -
O
RecyclerViewFocusRecoveryTest
apresenta falhas na API 15 - A linha "Capturas de tela" está focada na parte superior da tela
-
O
RecyclerViewLayoutTest.triggerFocusSearchInOnRecycledCallback()
apresenta falhas na API 15 -
O
setActions()
emonSubactionClicked()
está corrompido -
O
RecyclerView
falha ao reciclar alguns proprietários de visualizações
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 widgetsRecyclerView
internos quantos itens precisam ser preparados antes de serem rolados na tela. ChameLinearLayoutManager.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 chamandoLinearLayoutManager.setInitialPrefetchItemCount(4)
. Isso permite queRecyclerView
crie todas as visualizações relevantes mais cedo, enquanto oRecyclerView
externo está sendo rolado, o que reduz significativamente a quantidade de travamentos durante as rolagens. FragmentActivity.setSupportMediaController()
eFragmentActivity.getSupportMediaController()
foram suspensos. Use os novos métodos estáticosMediaControllerCompat.setMediaController()
eMediaControllerCompat.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
- Foi adicionada compatibilidade com a Biblioteca de Suporte ExifInterface. Essa biblioteca desagrupa a compatibilidade com a leitura de informações Exif de arquivos JPEG e brutos e com a configuração das informações Exif em arquivos de imagem JPEG.
- O
Snackbar
foi refatorado para permitir que os aplicativos exibam conteúdo personalizado.BaseTransientBottomBar
é a nova classe base que expõe o comportamento geral de deslizar e de animações. - Foi adicionado um novo pacote leanback.media, que contém classes auxiliares para integrar players de mídia em aplicativos do Android TV.
- Foi adicionado um
SeekBarPreference
com atributos e layout personalizáveis à Biblioteca de Suporte de preferências v7. - Foi adicionada a classe
ArraySet
à Biblioteca de Suporte v4. Essa classe corresponde à classeArraySet
do framework que foi introduzida na API de nível 23. - Melhorias na pré-busca de itens
RecyclerView
:- A pré-busca de
RecyclerView
aninhada permite a pré-busca de conteúdo de umRecyclerView
em outroRecyclerView
com rolagem, com uma API para controlar a quantidade de pré-busca realizada: - Foram adicionadas APIs para objetos
LayoutManager
personalizados a serem implementados para permitir a pré-busca durante gestos de rolagem e rolagem rápida - Foram feitas melhorias na pré-busca para fazer o mínimo possível de criação/vinculação no tempo entre os frames
- A pré-busca de
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 orequestPermission()
, quando deveria chamar oreleasePermission()
. - 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()
geraIllegalArgumentException
- Animar itens
RecyclerView
separaRecyclerView
s 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.
-
android.support.design.widget
-
android.support.v17.leanback.app
BackgroundManager.getDefaultDimLayer()
BackgroundManager.getDimLayer()
BackgroundManager.setDimLayer()
MediaControllerGlue.MediaControllerGlue(Context,PlaybackOverlayFragment,int[])
MediaControllerGlue.MediaControllerGlue(Context,PlaybackOverlayFragment,int[],int[])
PlaybackControlGlue.PlaybackControlGlue(Context,PlaybackOverlayFragment,int[])
PlaybackControlGlue.PlaybackControlGlue(Context,PlaybackOverlayFragment,int[],int[])
PlaybackControlGlue.getFragment()
PlaybackControlGlue.getOnItemViewClickedListener()
PlaybackControlGlue.onRowChanged()
PlaybackControlGlue.pausePlayback()
PlaybackControlGlue.skipToNext()
PlaybackControlGlue.skipToPrevious()
PlaybackControlGlue.startPlayback()
PlaybackControlSupportGlue
PlaybackOverlayFragment
PlaybackOverlaySupportFragment
-
android.support.v17.leanback.widget
-
android.support.v4.app
FragmentActivity.getSupportMediaController()
FragmentActivity.setSupportMediaController()
Revisão 25.0.1
Novembro de 2016
Problemas corrigidos
- A alternância de senhas
TextInputLayout
fica desativada por padrão para evitar substituições desnecessárias de drawables especificados pelo desenvolvedor. Ela pode ser ativada manualmente pelo atributo XMLpasswordToggleEnabled
. - Agora, os itens
BottomNavigationView
têm apenas uma linha para seguir as especificações do Material Design. - O
RecyclerView
apresenta falha durante a pré-busca se o gerenciador de layout é nulo. - A elevação
BottomNavigationView
agora está definida corretamente (problema AOSP 226182). - O
BottomNavigationView
falha ao adicionar itens de menu de forma programática (problema AOSP 225731). - Correção em drawables compostos
TextInputLayout
de esquerda+direita (problema AOSP 225836). - O
RecyclerView
falha ao reciclar proprietários de visualização (problema AOSP 225762). - Leanback: o TalkBack diz frequentemente a palavra "nulo" em visualizações de tela dividida.
RecyclerView
: problemas de renderização no Android Studio (problema AOSP 225753)- O
BottomNavigationView
continua exibindo itens de menu como selecionados depois queonNavigationItemSelected()
retorna falso (problema AOSP 225898) - O ForwardingListener gera
NoSuchMethodError
(problema AOSP 225647). - O
TextInputEditText
não exibe hints no modo de extração IME (problema AOSP 221880).
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étodofromMediaSession()
com nome mais adequado. -
O
android.support.v4.media.session.MediaSessionCompat.QueueItem.obtain(Object)
foi removido. Os usos precisam ser substituídos pelo métodoMediaSessionCompat.QueueItem#fromQueueItem
com nome mais adequado. -
O
android.support.v7.widget.Space
foi removido. Os usos precisam ser substituídos porandroid.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 recursosandroid.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
eDecoratedMediaCustomViewStyle
, 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:
- O
FloatingActionButton
não pode mais ser fixado em filhos indiretos deCoordinatorLayout
(problema AOSP 220250). - A imagem dentro de
CollapsingToolbarLayout
não é dimensionada adequadamente comfitsSystemWindows=true
(problema AOSP 220389). - O
CoordinatorLayout
geraIndexOutOfBoundsException
quandoSnackbar
é mostrado e dispensado (problema AOSP 220762). - O
TextInputLayout
não consegue resolver a cor do texto errada (problema AOSP 220305). - O
BatchedCallback.onMoved()
chama oBatchedCallback.onInserted()
(problema AOSP 220309). - O
TextInputLayout
substitui o drawable composto direito (problema AOSP 220728).
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:
- Divisão da Biblioteca de Suporte v4
- Atualizações da API
- Mudanças de comportamento
- Suspensões de uso
- Correções de bugs
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()
eView.performAccessibilityAction()
. -
support-core-utils
-
Oferece várias classes de utilidades, como
AsyncTaskLoader
ePermissionChecker
. -
support-core-ui
-
Implementa uma variedade de componentes relacionados à IU, como
ViewPager
,NestedScrollView
eExploreByTouchHelper
. -
support-media-compat
-
Oferece retrocompatibilidade com partes do framework de mídia, incluindo
MediaBrowser
eMediaSession
. -
support-fragment
-
Oferece retrocompatibilidade com o framework de fragmento. Esse método tem dependências em
support-compat
,support-core-utils
,support-core-ui
esupport-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
- Clientes que usam guias personalizadas podem controlar se Instant Apps serão abertos. Observe que os Instant Apps ainda não estão disponíveis de forma geral. Para ativar ou desativar os Instant Apps, chame
CustomTabsIntent.Builder.setInstantAppsEnabled()
ou especifiqueEXTRA_ENABLE_INSTANT_APPS
. Por padrão, as guias personalizadas ativarão os Instant Apps quando esse recurso estiver disponível. - O
TextInputLayout
inclui compatibilidade com a alternância de visibilidade de senha das especificações do Material Design. - O novo pacote
android.support.transition
oferece retrocompatibilidade com o framework de Transitions para os níveis de API 14 e posteriores. Para mais informações, consulte a referência deandroid.support.transition
. - A Biblioteca de suporte de guias personalizadas passa a ser compatível com o uso de
RemoteViews
na barra de ferramentas secundária. O métodosetToolbarItem()
foi suspenso. - O
AppCompatResources
adiciona a capacidade de carregar um<vector>
(no nível 9 de API ou posterior) ou<animated-vector>
(no nível 11 de API ou posterior) a partir de um código de recurso usando o novo métodogetDrawable()
. - Agora, o
CoordinatorLayout
é compatível com a definição de visualizações inseridas e com a especificação de que outras visualizações precisam desviar das visualizações inseridas. Isso permite que os apps repliquem padrões de comportamento semelhantes à maneira com queFloatingActionButton
sai do caminho de umSnackbar
, mas para todas as visualizações filhas arbitrárias. Para mais informações, consulte a documentação de referência deLayoutParams.insetEdge
eLayoutParams.dodgeInsetEdges
. - A nova classe
DiffUtil
calcula a diferença entre duas coleções e envia uma lista de operações de atualização adequadas para consumo por umRecyclerView.Adapter
. -
O
RecyclerView.OnFlingListener
foi incluído para oferecer compatibilidade com comportamentos personalizados em resposta a gestos de rolagem rápida. A classeSnapHelper
oferece uma implementação especificamente para ajustar visualizações filhas. Além disso, a classeLinearSnapHelper
estende essa implementação para oferecer comportamento de ajuste alinhado ao centro semelhante aViewPager
. - A biblioteca de guias personalizadas agora permite que os clientes solicitem a IU de navegador padrão, em vez da IU de guias personalizadas, chamando
CustomTabsIntent.setAlwaysUseBrowserUI()
. Esse comportamento é útil nos casos em que o navegador usa a IU de guias personalizadas, mas o usuário prefere a IU de navegador padrão.
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 porKeyEvent
android.support.v4.view.MotionEventCompat
: useMotionEvent
android.support.v4.view.ViewCompat
: useView
android.support.v4.view.ViewConfigurationCompat
: useViewConfiguration
-
O
AccessibilityServiceInfoCompat.getDescription()
foi suspenso em favor deAccessibilityServiceInfoCompat.loadDescription()
, que retorna uma descrição localizada corretamente. - Não instancie a classe
ActivityCompat
diretamente. O método não estáticogetReferrer(Activity)
será transformado em estático em uma versão futura. - O
CoordinatorLayout.Behavior.isDirty()
foi suspenso e não é mais chamado peloCoordinatorLayout
. 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étodofromMediaSession()
, que tem nome mais adequado. - O
MediaSessionCompat.QueueItem.obtain()
foi suspenso e substituído pelo métodofromQueueItem()
, com nome mais apropriado. - Várias classes abstratas foram suspensas e substituídas por interfaces que refletem melhor os equivalentes do framework.
- O
AccessibilityStateChangeListenerCompat
foi substituído pela interfaceAccessibilityManagerCompat.AccessibilityStateChangeListener
. - O
OnCloseListenerCompat
foi substituído pela interfaceSearchViewCompat.OnCloseListener
. - O
OnQueryTextListenerCompat
foi substituído pela interfaceSearchViewCompat.OnQueryTextListener
.
- O
- O
CustomTabsSession.setToolbarItem()
foi suspenso e substituído pelosetSecondaryToolbarViews()
baseado em RemoteViews.
Correções de bugs
Os seguintes problemas conhecidos foram corrigidos na versão 24.2.0:
- O indicador
SwipeRefreshLayout
é exibido quandosetRefreshing(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 deSavedState
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:
-
- O
NotificationCompat.Action.WearableExtender
tem novos métodosgetHintDisplayActionInline()
esetHintDisplayActionInline()
para compatibilidade com a versão de pré-lançamento do Android Wear 2.0. Esses métodos permitem que um aplicativo especifique que uma ação será exibida in-line com a notificação. - Chamar
Fragment.setUserVisbileHint()
não fará mais com que um fragmento seja iniciado se o hint tiver sido adicionado a umFragmentTransaction
que ainda não foi confirmado. Isso afeta os usuários doFragmentPagerAdapter
, que substitui osetUserVisbileHint()
, e presume um estado de ciclo de vida específico do fragmento após chamarsuper.setUserVisibleHint()
. Para mais informações, consulte a página de referência de documentos doFragment.setUserVisbileHint()
.
- O
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()
egetImportance()
. - O
MediaSessionCompat
agora espelha a funcionalidade doMediaSession
e não chama mais osetMediaButtonReceiver()
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. - Inclusão de
- Mudanças na Biblioteca appcompat v7:
-
- Inclusão de compatibilidade para referenciar objetos
ColorStateList
com temas a partir de XML.
- Inclusão de compatibilidade para referenciar objetos
- Mudanças na Biblioteca de Suporte de Design:
-
- Melhorias no processamento de elevação pelo
AppBarLayout
usandoStateListAnimator
.
- Melhorias no processamento de elevação pelo
- 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.
- Acréscimo de
- 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.
- Inclusão de compatibilidade para fornecer uma hierarquia de
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:
-
- Inclusão do método
AppCompatDelegate.setCompatVectorFromResourcesEnabled()
para reativar o uso de drawables vetoriais em objetosDrawableContainer
em dispositivos com Android 4.4 (API de nível 19) e anteriores. Consulte AppCompat v23.2: idade dos vetores (link em inglês) para saber mais. - Correção de um problema em que o
AppCompatDelegate.setDefaultNightMode()
não carregava os recursos corretos na API de nível 23 (problema 206573). - Correção de um problema que poderia causar
NullPointerException
(problema 207638).
- Inclusão do método
- Mudanças na Biblioteca de Suporte de Design:
-
- Correção de um problema em que o
TextInputLayout
não apagava a tonalidade do erro apóssetErrorEnabled(false)
nos níveis de API 21 e 22 (problema 202829). - Correção de um problema em que o
FloatingActionButton
não retornava quando as animações eram desativadas (problema 206416). - Correção de um problema na funcionalidade de ajuste do
AppBarLayout
ao ser usada com as sinalizações de rolagem
. (problema 207398).scroll
|enterAlways
|enterAlwaysCollapsed
|snap
- Correção de um problema em que o
- Mudanças na Biblioteca de drawables vetoriais:
-
- Correção de um bug em que o
VectorDrawableCompat
não era renderizado corretamente noTextView
da API de nível 23 (problema 206227).
- Correção de um bug em que o
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. OhasStartedFromLauncher()
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.
- Inclusão de
- Mudanças na Biblioteca appcompat v7:
-
- Correção de um problema no
AppCompatSpinner
que poderia fazer com que vários pop-ups fossem exibidos (problema 205052). - Correção de um problema no modo como os botões sem borda eram coloridos (problema 202967).
- Correção de um problema de compatibilidade entre
AppCompatDialogFragment
eAlertDialog
(problema 204805). - Reversão de mudanças no
TintResources
que estavam causando problemas de configuração e memória (problema 205236).
- Correção de um problema no
- Mudanças na Biblioteca mediarouter v7:
-
- Correção no comportamento do controle deslizante de volume do
MediaRouteControllerDialog
(problema 202299).
- Correção no comportamento do controle deslizante de volume do
- Mudanças na Biblioteca de preferências v7:
-
- Correção do problema em que
PreferenceFragmentCompat
falhava sedividerHeight
fosse especificado (problema 204778).
- Correção do problema em que
- Mudanças na biblioteca recyclerview v7:
-
- Correção de um bug em que o
RecyclerView
não invocava callbacks de rolagem se o intervalo de itens visíveis diminuísse (problema 200987). - Correção de um bug em que o
RecyclerView
congelava se estivesse em layout linear, estivesse ponderado e contivesse imagens (problema 203276). - Correção de uma falha em
OrientationHelper.getStartAfterPadding()
(problema 180521). - Correção de uma falha no uso do
android:nestedScrollingEnabled
(problema 197932).
- Correção de um bug em que o
- Mudanças na Biblioteca de Suporte de Design:
-
- Correção de um bug em que uma planilha inferior oculta gerenciava eventos de toque (problema 203654).
- Correção de um problema de layout com o
BottomSheetBehavior
quandofitsSystemWindows
é verdadeiro (problema 203057). - Correção de um problema de acessibilidade com o
Snackbar
(problema 182145). - Correção uma falha ao deslizar o
Snackbar
(problema 203924). - Correção de um bug no
AppBarLayout
comenterAlways
(problema 203661). - Correção de um bug em que o
TextInputLayout
apagava desnecessariamente o filtro de cor de fundo do objetoEditText
(problema 203357).
Revisão 23.2.1
Março de 2016
- Mudanças na Biblioteca de Suporte v4:
-
- Correção de uma exceção no
DrawableCompat.wrap()
e noLayerDrawable
nos níveis de API 17 a 19 (problema 201817). - Correção de uma
ArrayIndexOutOfBoundsException
noViewDragHelper.shouldInterceptTouchEvent()
(problema 182262). - Correção de um bug no
ViewPager
relacionado ao cálculo de rolagem para mudanças de tamanho. - Correção de uma
NullPointerException
quandoDrawerLayout.removeDrawerListener()
é chamado sem umDrawerLayout.DrawerListener
configurado (problema 202478). - Correção de um bug em que o
ViewPager
não define parâmetrosAccessibilityEvent
adequadamente ao rolar a tela. - Correção de um problema que causava atraso durante a rotação do dispositivo ao usar o
Drawable.wrap()
(problema 201924).
- Correção de uma exceção no
- 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).
- 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
- Mudanças na Biblioteca cardview v7:
-
- Acréscimo de compatibilidade com o "modo noturno" ao
CardView
(problema 194497).
- Acréscimo de compatibilidade com o "modo noturno" ao
- Mudanças na biblioteca recyclerview v7:
-
- Correção de bugs relacionados a vários métodos de especificação de medição (problema 201856).
- Redução do período de bloqueio total em que o
RecyclerView
não permitia mudanças no adaptador ao calcular um layout ou uma rolagem (problema 202046). - Correção de uma falha ao chamar
notifyItemChanged()
em um item fora da visualização (problema 202136). - Correção de uma falha que ocorre quando o
RecyclerView.LayoutManager
adiciona e remove uma visualização no mesmo cálculo de medição (problema 193958).
- Mudanças na Biblioteca mediarouter v7:
-
- Correção de uma falha que ocorre ao chamar
MediaRouter.getInstance()
no nível 17 da API (problema 180654).
- Correção de uma falha que ocorre ao chamar
- 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.
- Correção de um problema com
- Mudanças na Biblioteca de Suporte de Design:
-
- Correção de uma falha no
TabLayout
causada pelo pooling de guias (problema 201827). - Correção de um bug no
NavigationView
que fazia com que a cor errada fosse selecionada (problema 201951). - Correção de um bug em que o
setBackgroundTintList()
não alterava mais a cor do plano de fundo (problema 201873). - Correção de um problema em que o
AppBarLayout
não saía completamente da visualização quando era usado comandroid:fitsSystemWindows = “true”
(problema 201822). - Correção de um problema em que o
BottomSheetDialog
não exibia visualizações curtas de conteúdo corretamente (problema 201793). - Correção de um problema em que o
BottomSheetDialogFragment
se movia esporadicamente quando o conteúdo era alterado (problema 202125). - Correção de uma falha no link do contador TextInputLayout
- Correção de uma falha que ocorria quando o
TextInputLayout.getCounterMaxLength()
restaurava um estado salvo (problema 202375). - Correção de uma
ClassCastException
que ocorria ao restaurar umCoordinatorLayout
usando o estado salvo de uma visualização que não era umCoordinatorLayout
.
- Correção de uma falha no
- Mudanças no VectorDrawableCompat:
-
- Correção de um bug em que a variável incorreta era lida para
android:tintMode
(problema 201907).
- Correção de um bug em que a variável incorreta era lida para
Revisão 23.2.0
Fevereiro de 2016
- Mudanças na Biblioteca de Suporte v4:
-
- Inclusão de
MediaBrowserCompat
para compatibilidade comMediaBrowser
e deMediaBrowserServiceCompat
para compatibilidade comMediaBrowserService
. 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 umaFragmentActivity
aninhada.
- Inclusão de
- 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.
- Temas de dia e noite podem ser encontrados em:
- Mudanças na Biblioteca mediarouter v7:
-
- Agora, o
MediaRouteControllerDialog
aplica corretamente as cores do tema do app personalizado.
- Agora, o
- 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 umCoordinatorLayout
atue como página inferior. A classe base,BottomSheetCallback
, fornece callbacks para monitorar eventos de página inferior.
- Acréscimo de compatibilidade com páginas inferiores. Um plug-in de interação,
- 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 recursosAnimatedVectorDrawable
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
emImageButton
ouImageView
, use o atributo XMLapp:srcCompat
ou o métodosetImageResource()
. - Para continuar referenciando códigos de atributo na API de nível 20 ou anterior, adicione a seguinte sinalização
appt
ao seu arquivobuild,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 } }
- Se você está compilando com o plug-in do Android para Gradle 1.5.0 ou anterior, adicione o seguinte ao arquivo
- 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õesGuidedAction
que o usuário pode selecionar na visualização "Actions".- Os campos de descrição agora podem ser editados:
-
GuidedAction.Builder.descriptionEditable()
: ao transmitirtrue
, configura a descrição da ação como editável.GuidedAction.getEditDescription()
: retorna a descrição editável como umCharSequence
.
- Acréscimo de listas suspensas de subações:
-
GuidedAction.setSubActions()
: define uma listaGuidedAction
como um menu suspenso de subações.
- Inclusão de ações de botão a
- Acréscimo do widget
GuidedDatePickerAction
à funcionalidadeDatePicker
: -
- A data é selecionada usando as colunas de ano, mês e dia e tem um intervalo personalizável.
GuidedDatePickerAction.Builder
: classe builder para o objetoGuidedDatePickerAction
.GuidedDatePickerAction.Builder.datePickerFormat(String datePickerFormat)
: define o formato de data desejado transmitindo oString
com três caracteres, por exemplo,“YMD”
ou“MDY”
. Como alternativa, use o atributo XMLdatePickerFormat
.
- Acréscimo de novos recursos a
- Mudanças na Biblioteca RecyclerView v7:
-
- O
RecyclerView
agora tem um recurso de ativação chamado AutoMeasure, que permite que oRecyclerView.LayoutManager
agrupe facilmente o conteúdo ou gerencie várias especificações de medição fornecidas pelo pai daRecyclerView
. Ele é compatível com todos os recursos de animação existentes doRecyclerView
. -
- Se você tem um
RecyclerView.LayoutManager
personalizado, chamesetAutoMeasureEnabled(true)
para começar a usar a nova API AutoMeasure. Todos os objetosRecyclerView.LayoutManager
integrados permitem a medição automática por padrão. - O
RecyclerView.LayoutManager
deixou de ignorar algumas configuraçõesRecyclerView.LayoutParams
, comoMATCH_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.
- Se você tem um
- Ao atualizar um
RecyclerView.ViewHolder
com informações de payload, oDefaultItemAnimator
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, substituagetSwipeEscapeVelocity(float defaultValue)
e modifiquedefaultValue
.
- O
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).
- Correção de uma falha que ocorre quando você executa uma ação de deslizar para dispensar que a classe de utilitário
- Mudanças na biblioteca de preferências v7:
-
- Correção de um problema no uso do ProGuard (problema 183261).
- 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
à classeNavigationView
. - 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).
- Inclusão do método
Revisão 23.1.0
Outubro de 2015
- Mudanças na Biblioteca de Suporte v4:
-
- Inclusão de compatibilidade com a interface
OnScrollChangedListener
ao widgetNestedScrollView
. 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 classeMediaSessionCompat
. A classeMediaSessionCompat
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.
- Inclusão de compatibilidade com a interface
- Mudanças na Biblioteca appcompat v7:
-
- Inclusão de widgets
Seekbar
eImageButton
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
.
- Inclusão de widgets
- 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.
- Os seguintes recursos foram adicionados à classe
- 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 objetoBitmap
.
- O método
- 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 objetoItemAnimator
decide se quer reutilizar o mesmo objetoViewHolder
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 paraSimpleItemAnimator
, e seu código funcionará como antes. A classeSimpleItemAnimator
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); }
- Acréscimo de uma API de animação aprimorada à classe
- Alterações na Biblioteca de Suporte de Preferências v7, v14, e v17:
-
- Remoção de APIs para controlar caixas de diálogo
EditText
.
- Remoção de APIs para controlar caixas de diálogo
- Mudanças na Biblioteca de Suporte Leanback v17:
-
- Inclusão de uma versão da classe
GuidedStepFragment
para a Biblioteca de Suporte (estendeandroid.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
.
- Inclusão de uma versão da classe
- 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 constanteSCROLL_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 atributoapp:actionLayout
ou o métodoMenuItemCompat.setActionView()
.
- Inclusão de compatibilidade com a contagem de caracteres ao widget
- Mudanças na Biblioteca de Suporte de guias personalizadas:
-
- Acréscimo do método
enableUrlBarHiding()
à classeCustomTabsIntent
. Ele permite que o cliente personalize se a barra de URL ficará oculta automaticamente ao rolar para baixo. - Acréscimo do método
setActionButton()
à classeCustomTabsSession
. 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
eTAB_HIDDEN
como novos eventos para o métodoonNavigationEvent
da classeCustomTabsCallback
.
- Acréscimo do método
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 oActionBar
usando o métodosetSupportActionBar()
(problema 183334). - A classe
AppCompatDialogFragment
foi atualizada para não gerar mais o erroWindows feature must be requested before adding content
(problema 183186).
- Correção dos problemas de falhas da classe
- Mudanças na Biblioteca de Suporte de design:
-
- Correção da classe
AppBarLayout
para que desenhe corretamente após a rotação (problema 183109). - Correção da classe
TabLayout
para que apresente o comportamento correto quando o usuário clica após deslizar (problema 183123).
- Correção da classe
- 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.
- Diminuição do valor da
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()
eshow()
foram adicionados à classeFloatingActionButton
para acionar animações de forma programática. - Acréscimo da constante
LENGTH_INDEFINITE
à classeSnackbar
para mostrar um snackbar até que ele seja dispensado ou outro seja exibido. Além disso, foram adicionados os métodossetActionTextColor(int)
esetActionTextColor(ColorStateList)
. - O método
getSelectedTabPosition()
foi adicionado à classeTabLayout
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.
- Os métodos
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 deEditText
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 comViewPager
. - 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 doCoordinatorLayout.Behavior
. Muitos dos componentes da Biblioteca de design dependem de ser filho de umCoordinatorLayout
. - Adição do
AppBarLayout
, um contêiner para umToolbar
e outras visualizações (comoTabLayout
) 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 umToolbar
é recolhido. Uma barra de ferramentas pode ser recolhida fixando componentes à parte superior da tela enquanto ela recolhe, introduzindo rolagem parallax de componentes comoImageView
ou adicionando uma cor scrim de conteúdo quando a visualização é parcialmente recolhida.
- Inclusão do
- Mudanças na Biblioteca de Suporte v4:
-
- Foram adicionados os métodos
getContentChangeTypes()
esetContentChangeTypes()
e os campos de tipo de alteração relacionados à classeAccessibilityEventCompat
para gerenciamento de eventos de acessibilidade. - Foram adicionados os métodos
getActiveQueueItemId()
,getCustomActions()
egetExtras()
com campos de estado relacionados à classePlaybackStateCompat
para receber ações personalizadas da fila. - Foram adicionados os métodos
addCustomAction()
,setActiveQueueItemId()
esetExtras()
à classePlaybackStateCompat.Builder
para adicionar ações personalizadas a um estado de reprodução. - Foram adicionados os métodos
fromCustomAction()
egetCustomAction()
à classePlaybackStateCompat.CustomAction
para receber ações personalizadas da fila. - Foram adicionados os métodos
isAttachedToWindow()
,offsetLeftAndRight()
eoffsetTopAndBottom()
à classeViewCompat
para trabalhar com visualizações. - Foram adicionados os métodos
addOnPageChangeListener()
,clearOnPageChangeListeners()
eremoveOnPageChangeListener()
à classeViewPager
para responder a mudanças de página.O método
ViewPager.setOnPageChangeListener()
foi suspenso. - O método
notifySubtreeAccessibilityStateChanged()
foi adicionado à classeViewParentCompat
para notificar uma visualização pai que o estado de acessibilidade de um dos descendentes mudou. - Os métodos
translationZ()
,translationZBy()
,z()
ezBy()
foram adicionados à classeViewPropertyAnimatorCompat
para adicionar animação.
- Foram adicionados os métodos
- Mudanças na Biblioteca appcompat v7:
-
- O método
onWindowStartingSupportActionMode()
foi adicionado às classesAppCompatActivity
,AppCompatCallback
eAppCompatDialog
para gerenciar modos de ação iniciados a partir da janela atual. - Os métodos
isHandleNativeActionModesEnabled()
esetHandleNativeActionModesEnabled()
foram adicionados à classeAppCompatDelegate
para gerenciamento de modos de ação nativos.
- O método
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:
-
- A classe
ColorUtils
foi adicionada para fornecer um conjunto de métodos utilitários relacionados a cores. - Os métodos
unwrap()
ewrap()
foram adicionados à classeDrawableCompat
, permitindo que você usesetTint()
,setTintList()
esetTintMode()
em todos os dispositivos com API de nível 4 ou posteriores. - A classe
TraceCompat
foi adicionada para gravar eventos de rastreamento no buffer do sistema, que podem ser coletados e visualizados usando a ferramenta Systrace. - A classe
CircularIntArray
foi adicionada para criar estruturas de dados de matriz de número inteiro circular. - Os métodos
clear()
,removeFromStart()
eremoveFromEnd()
foram adicionados à classeCircularArray
. Além disso, os métodos existentes nessa classe foram alterados para não finais. InputDeviceCompat
foi adicionada como classe auxiliar para acessar dados na classeInputDeviceCompat
.- A classe
LayoutInflaterCompat
foi adicionada como classe auxiliar para acessar dados na classeLayoutInflaterCompat
, e a interfaceLayoutInflaterFactory
foi adicionada. - Classes, métodos e interfaces foram adicionados para oferecer compatibilidade com a rolagem aninhada.
- As classes auxiliares
NestedScrollingChildHelper
eNestedScrollingParentHelper
foram adicionadas para a implementação de visualizações de rolagem pai e filho aninhadas. - A interface
NestedScrollingChild
foi adicionada para ser implementada por subclassesView
. - Acréscimo das interfaces
NestedScrollingParent
eScrollingView
para oferecer compatibilidade com operações de rolagem e fornecer APIs relacionadas a rolagem. - O método
getNestedScrollAxes()
foi adicionado à classeViewGroupCompat
. - Foram adicionados métodos à classe
ViewParentCompat
para oferecer compatibilidade com a rolagem aninhada. - A classe
NestedScrollView
foi adicionada para oferecer compatibilidade com a rolagem aninhada pai e filho nas versões novas e antigas do Android.
- As classes auxiliares
- Inclusão de métodos e constantes à classe
MotionEventCompat
para receber valores de eixo e origem do evento. - A classe
AccessibilityNodeInfoCompat
foi atualizada para adicionar métodos a erros, invalidação de conteúdo e etiquetas. - Foram adicionadas as seguintes classes de interpolação para animação:
FastOutLinearInInterpolator
,FastOutSlowInInterpolator
,LinearOutSlowInInterpolator
,LinearOutSlowInInterpolator
ePathInterpolatorCompat
. - A classe
Space
foi adicionada para criar intervalos entre componentes em layouts de finalidade geral. Essa classe está obsoleta na biblioteca gridlayout. - A classe
TextViewCompat
foi adicionada para acessar recursos emTextView
. - Um parâmetro de deslocamento foi adicionado ao método
onPull()
na classeEdgeEffectCompat
.
- A classe
- Mudanças na Biblioteca appcompat v7:
-
- Foi adicionada compatibilidade com tonalidades a widgets appcompat, incluindo
AppCompatAutoCompleteTextView
,AppCompatButton
,AppCompatCheckBox
,AppCompatCheckedTextView
,AppCompatEditText
,AppCompatMultiAutoCompleteTextView
,AppCompatRadioButton
,AppCompatRatingBar
,AppCompatSpinner
eAppCompatTextView
. - A
AppCompatActivity
foi atualizada como classe base para atividades que usam os recursos da barra de ações da Biblioteca de Suporte. Essa classe substituiu aActionBarActivity
obsoleta. - A interface
AppCompatCallback
foi adicionada para ser implementada por AppCompat para executar callbacks. - A classe abstrata
AppCompatDelegate
foi adicionada como uma delegação que pode ser usada para estender a compatibilidade com AppCompat a qualquer atividade. - A classe
AppCompatDialog
foi adicionada como a classe base para caixas de diálogo temáticas do AppCompat. - Foram adicionadas as classes
AlertDialog
eAlertDialog.Builder
de estilo do ícone de carregamento para fornecer umAlertDialog
com tema de AppCompat. - A classe
Palette.Builder
foi adicionada para gerar instâncias dePalette
.- O método
from(Bitmap)
foi adicionado à classePalette
para começar a gerar uma paleta com a instânciaPalette.Builder
retornada. - Os métodos
Palette.generate()
ePalette.generateAsync()
foram suspensos.
- O método
- O método
getAbsoluteAlignment()
foi adicionado à classeGridLayout.Spec
. - O uso de
app:theme
para o estilo deToolbar
foi suspenso. Agora, você pode usarandroid:theme
para barras de ferramentas em todos os dispositivos com API de nível 7 e posteriores, e oandroid:theme
é compatível com todos os widgets de dispositivos com API de nível 11 e posteriores.
- Foi adicionada compatibilidade com tonalidades a widgets appcompat, incluindo
- Mudanças na Biblioteca Leanback v17:
-
- Acréscimo de
GuidedStepFragment
,GuidanceStylist
eGuidedActionsStylist
para oferecer compatibilidade com a criação de fluxos de decisão em várias etapas.
- Acréscimo de
- Mudanças na Biblioteca recyclerview v7:
-
- Foram adicionadas classes
SortedList
para exibir itens em uma ordem de lista e fornecer notificações de mudanças na lista. - Foi adicionada a classe
SortedListAdapterCallback
, que pode vincular uma lista classificada a uma classeRecyclerView.Adapter
.
- Foram adicionadas classes
- Mudanças na Biblioteca renderscript v8:
-
- A classe
ScriptIntrinsicHistogram
foi adicionada para uso como filtro de histograma. - A classe
ScriptIntrinsicResize
foi adicionada para executar redimensionamentos de uma alocação 2D.
- A classe
- Mudanças na Biblioteca de Suporte v4:
-
- O método
getDrawable()
foi atualizado para retornar um objeto drawable para um código de recurso, densidade da tela e tema específicos. - O método
setImportantForAccessibility()
foi adicionado para que você possa indicar se uma visualização acionará eventos de acessibilidade. - O método
getStatusBarBackgroundDrawable()
foi adicionado para que você possa ter o drawable em segundo plano na barra de status. - Foram adicionados métodos à classe
NotificationCompat.CarExtender.UnreadConversation
para que os aplicativos de mensagens do Android Auto possam recuperar outros dados de notificação. - O método
getProgressCircleDiameter()
foi adicionado para retornar o diâmetro de um layout de círculo. - A cor padrão da barra de status
DrawerLayout
foi alterada paracolorPrimaryDark
.
- O método
- Mudanças na Biblioteca appcompat v7:
-
- Acréscimo do estilo de ícone de carregamento
Base_Widget_AppCompat_Spinner_Underlined
. - Adição de estilos de widgets tonalizados com
Widget_AppCompat_AutoCompleteTextView
,MultiAutoCompleteTextView
,TextAppearance_AppCompat_Button
eBase_Widget_AppCompat_RatingBar
.
- Acréscimo do estilo de ícone de carregamento
- Mudanças na Biblioteca Leanback v17:
-
- Os métodos
getRecycledPoolSize()
esetRecycledPoolSize()
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 à classeDetailsFragment
. - O método
replace()
foi adicionado para substituir itens na matriz de adaptador de um objeto.
- Os métodos
- Mudanças na Biblioteca mediarouter v7:
-
- Ícones do Google Cast foram atualizados para usar o estilo Material Design.
- Todos os ícones usados nas caixas de diálogo
MediaRouter
foram atualizados para usar o estilo do Material Design.
- Mudanças na Biblioteca recyclerview v7:
-
- Os métodos
getlayoutPosition()
egetadapterPosition()
foram adicionados à classeRecyclerView
. - Os métodos
classgetChildPosition()
efindViewHolderForPosition()
da classeRecyclerView
foram suspensos. - O método
getPosition()
da classeRecyclerView.ViewHolder
foi suspenso. - O método
getViewPosition()
da classeRecyclerView.LayoutParams
foi suspenso.
- Os métodos
- Mudanças na Biblioteca de Suporte v4:
-
- Vários métodos
NotificationCompat.WearableExtender
foram adicionados para melhorar a exibição de códigos de barras em notificações em dispositivos wearables.
- Vários métodos
- Mudanças na Biblioteca de Suporte v4:
-
- A classe
NotificationCompat.CarExtender
foi adicionada para oferecer compatibilidade com as extensões do Android Auto para notificações.
- A classe
- 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 decommitIcon
. - O atributo
buttonGravity
foi removido da classeToolbar
.
- Acréscimo do construtor
- Mudanças na Biblioteca cardview v7:
-
- Acréscimo da API
setCardBackgroundColor(ColorStateList)
para oferecer compatibilidade com a alteração da cor de fundo deCardView
. - Alteração de
CardView
para informar com mais precisão o valor de opacidade comoTRANSLUCENT
.
- Acréscimo da API
- Mudanças na Biblioteca recyclerview v7:
-
- Adição das constantes
TOUCH_SLOP_DEFAULT
eTOUCH_SLOP_PAGING
à classeRecyclerView
para oferecer compatibilidade com configurações de tolerância de toque para paginação.
- Adição das constantes
- 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.
- 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.
- 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 deFile
ao trabalhar com árvores de documentos. No entanto, essa classe exige mais sobrecarga de processamento em comparação com a APIDocumentsContract
da plataforma adicionada ao Android 4.4 (API nível 19). Portanto, useDocumentsContract
quando estiver usando o Android 4.4 ou versões posteriores.
- Adição de compatibilidade para transições
- 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 deActionBar
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 widgetSwitch
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.
- Adição do widget
- 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.
- Acréscimo do widget
- Nova Biblioteca de paletas v7:
-
- Adição da classe
Palette
, que permite extrair cores proeminentes de uma imagem.
- Adição da classe
- Nova Biblioteca Leanback v17:
-
- Adição de compatibilidade com a criação de interfaces de usuário de TV, incluindo
BrowseFragment
,DetailsFragment
ePlaybackOverlayFragment
. Para saber mais sobre como usar esses widgets da interface do usuário, consulte Como criar aplicativos de reprodução de TV.
- Adição de compatibilidade com a criação de interfaces de usuário de TV, incluindo
- Mudanças na Biblioteca de Suporte v4:
-
- Inclusão da compatibilidade com notificações estendidas no Android Wear em
NotificationCompat.WearableExtender
, o que permite que você especifique recursos de wearable em suas notificações. - Adição de
NotificationCompat.Action.WearableExtender
, que permite adicionar ações a notificações de wearable. - Acréscimo de
NotificationManagerCompat
, que permite que você emita notificações compatíveis com recursos wearable. - Inclusão de
RemoteInput
, que permite que um dispositivo portátil receba entrada de voz de uma notificação que aparece em um dispositivo wearable. - Melhorias no gerenciamento do feedback de toque em
SwipeRefreshLayout
.
- Inclusão da compatibilidade com notificações estendidas no Android Wear em
- 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.
- A classe
- Mudanças na Biblioteca appcompat v7:
-
- Correção de problemas em segundo plano com a barra de ações.
- Mudanças na Biblioteca de Suporte v4:
-
- Melhoria em
PrintHelper
com a adição de gerenciamento assíncrono de impressão. - Correção da aproximação da classe
DrawerLayout
do métodoaddChildrenForAccessibility()
. - Correção do espelhamento do drawable de deslizar em
ActionBarDrawerToggle
. - Correção de um problema "off-by-one" ao remover um item de um iterador de coleção.
- Melhoria em
- Mudanças na Biblioteca mediarouter v7:
-
- Identificação de rota aprimorada usando o nome completo do componente em
MediaRouteProvider.ProviderMetadata
. - Atualização de
MediaRouteChooserDialog
para ocultar rotas desativadas.
- Identificação de rota aprimorada usando o nome completo do componente em
- Mudanças na Biblioteca renderscript v8
-
- Adição de propagação de erro para a camada de thunking do RenderScript.
- Mudanças na Biblioteca de Suporte v4:
-
- Adição de compatibilidade com APIs de armazenamento externo com
getObbDirs()
,getExternalFilesDirs()
,getExternalCacheDirs()
egetStorageState()
. Esses métodos auxiliares sempre retornam um único objeto de arquivo em dispositivos executando o Android 4.3 (API de nível 18) e versões anteriores. Ao executar no Android 4.4 (API nível 19) e versões posteriores, é possível que esses métodos retornem mais de um objeto de arquivo. - Adição da classe
PrintHelper
, que funciona com as APIs Print para imprimir imagens com o mínimo de código. - Acréscimo de compatibilidade com a interface do usuário de arrastar para abrir para menus pop-up. Para mais informações, consulte
PopupMenuCompat
eListPopupWindowCompat
. - Melhor compatibilidade de acessibilidade com a adição de um método
findFocus()
emAccessibilityNodeProviderCompat
e do métodogetLiveRegion()
emAccessibilityNodeInfoCompat
. - Foi adicionada uma classe auxiliar
ScaleGestureDetectorCompat
para acessar novos métodos de gesto de dimensionamento. - Correção de problema com
ActionBarDrawerToggle
em exibições de idioma da direita para a esquerda. - Modificação da opção
AutoScrollHelper
para consumir eventos de toque ou permitir que eles sejam transmitidos para outras visualizações.
- Adição de compatibilidade com APIs de armazenamento externo com
- 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.
- 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
eSlidingPaneLayout
para não gerar exceções para a medição enquanto o código do projeto estiver sendo editado.
- Adição de
- Acessibilidade
- Adição de
ExploreByTouchHelper
para simplificar a implementação da acessibilidade para visualizações personalizadas. - Correção de um problema com
ViewPager
preenchendo incorretamente eventos de acessibilidadeTYPE_VIEW_SCROLLED
. - Correção de uma exceção de ponteiro nulo em
ViewPager
ao preencher um evento de acessibilidade. - Simplificação de
AccessibilityNodeInfoCompat
mudando entradasCharSequence
para objetosString
. - Um construtor
AccessibilityRecordCompat
que usava umObject
como entrada foi suspenso.
- Adição de
- 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.
- Adição da classe auxiliar
- 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 umService
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()
erollbackContentChanged()
, aAsyncTaskLoader
para ajudar a lidar com atualizações em segundo plano para alterações de dados que forem canceladas posteriormente.
- Adição da classe auxiliar
- Interface do usuário
- 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 classeActionBarActivity
.
- Adição de
- 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.
- Mudanças na Biblioteca de Suporte v4:
-
- Adição de
DrawerLayout
para criar uma gaveta de navegação que pode ser puxada da borda de uma janela. - Acréscimo do widget
SlidingPaneLayout
para criar visualizações de resumo e detalhes vinculadas que se adaptam adequadamente a vários tamanhos de tela. - Inclusão de
ActionBarDrawerToggle
como forma de associar as funções deDrawerLayout
eActionBar
. - Adição de
ViewDragHelper
como um novo componente comum para arrastar visualizações dentro de uma visualização pai. - Inclusão de
ScrollerCompat
para oferecer compatibilidade comScroller
eOverScroller
. - Adição de
FileProvider
para permitir o compartilhamento de arquivos privados entre aplicativos. - Atualização de
ViewPager
para lançar uma exceção se a classePagerAdapter
associada for modificada sem uma chamada paranotifyDataSetChanged()
. - Correção de um problema com
ViewPager
filhos desenhando a ordem de classificação. - Correção de
GestureDetectorCompat
para enviar chamadasonSingleTapConfirmed(MotionEvent)
ausentes entre o tempo limite de toque e eventos de tocar e manter pressionado.
- Adição de
- Nova Biblioteca gridlayout v7:
-
- Adição de
GridLayout
para oferecer compatibilidade com o objeto de layoutGridLayout
. - Acréscimo do
android.support.v7.widget.Space
, que pode ser usado para criar áreas em branco dentro de um objeto de layoutGridLayout
.
- Adição de
- 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 paraViewPager
. - 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.
- Melhor comportamento de interação para
- Mudanças na Biblioteca de Suporte v4:
-
- Interface do usuário
- Adição de compatibilidade com classes
Fragment
aninhadas. - Acréscimo de melhorias à depuração de
FragmentManager
. - Correção do problema em
FragmentTabHost
, em que a interação entre fragmento e guia poderia resultar em uma perda de estado doListView
. - Correção do problema com o hint visível para o usuário em
FragmentStatePagerAdapter
. - Adição da interface
PageTransformer
aViewPager
para permitir que os aplicativos ofereçam um comportamento de transição personalizado para rolagem. - Acréscimo de novos recursos e correções para o
TaskStackBuilder
da versão atual. - Correção de
PagerTitleStrip
para rastrear corretamente oPagerAdapter
em uso no momento. - Correção de problemas de oscilação, posicionamento e recorte de texto com
PagerTitleStrip
. - Correção de
PagerTabStrip
para respeitar adequadamente o preenchimento ao desenhar um sublinhado.
- Adição de compatibilidade com classes
- Acessibilidade
- Adição de compatibilidade com novos tipos de evento de toque e gesto de acessibilidade em
AccessibilityEventCompat
. - Acréscimo de compatibilidade com novas APIs de acessibilidade em
ViewCompat
. - Inclusão de compatibilidade com o método
performAccessibilityAction()
aViewCompat
.
- Adição de compatibilidade com novos tipos de evento de toque e gesto de acessibilidade em
- Adição de compatibilidade com gestos com
GestureDetectorCompat
. - Inclusão de compatibilidade com a execução de operações atômicas em arquivos usando uma nova classe
AtomicFile
. - Acréscimo de compatibilidade com o conjunto completo de métodos
make
emIntentCompat
. - Adição do método
trimToSize()
à classe de utilitáriosLruCache
. - Atualização de
ConnectivityManagerCompat
para receber informações de rede de uma transmissãoCONNECTIVITY_ACTION
.
- Interface do usuário
- 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
.
- Adição de compatibilidade com os recursos de notificação introduzidos no Android 4.1 (API de nível 16) com adições a
- 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 dePagerTitleStrip
. - Correção de vários bugs para
PagerTitleStrip
ePagerTabStrip
, incluindo a opçãosetAllCaps
, 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 classeViewPager
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 deonActivityResult()
quando o fragmento de destino não existir mais, envio de eventos de seleção para fragmentos invisíveis, melhora no comportamentoFragmentTransaction.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()
emViewCompat
. - Atualização de
NavUtils
para usar a funcionalidade de navegação Up do Android 4.1 (API nível 16), quando disponível.
- Adição de compatibilidade com
- 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
.
- Atualização das classes de compatibilidade com acessibilidade, incluindo
- Melhorias gerais
- Atualização de
TaskStackBuilder
para refletir as mudanças na API no Android 4.1 (API nível 16). - Aprimoramento de
TaskStackBuilder
para permitir que ele seja usado em um serviço. - Adição de compatibilidade com
EXTRA_HTML_TEXT
aShareCompat
. - Atualização de
NotificationCompat.Builder
para oferecer compatibilidade com o métodosetNumber()
. - Adição de compatibilidade com
ConnectivityManagerCompat
para o métodoisActiveNetworkMetered()
.
- Atualização de
- Compatibilidade com a interface do usuário
- Mudanças na Biblioteca de Suporte v4:
-
- Correção das sinalizações de intent para objetos
PendingIntent
gerados porTaskStackBuilder
. - 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.
- Correção das sinalizações de intent para objetos
- 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 novoShareActionProvider
no Android 4.0. - Adição de
NavUtils
eTaskStackBuilder
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 auxiliarNotification.Builder
do Android 3.0 para criar notificações do sistema padronizadas.
- Adição de
- 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.
- Adição de compatibilidade com a visualização decorativa para
- Compatibilidade com fragmentos:
- O método
setStartDeferred()
foi alterado parasetUserVisibleHint(boolean)
. - Adição do início adiado para páginas fora da tela para melhorar o desempenho.
- O método
- 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.
- Atualização dos métodos
- Mudanças no ViewPager:
- Mudanças na Biblioteca de Suporte v4:
-
- Compatibilidade com APIs de acessibilidade:
- Adição de
AccessibilityDelegateCompat
para oferecer compatibilidade comView.AccessibilityDelegate
. - Adição de
AccessibilityEventCompat
para oferecer compatibilidade comAccessibilityEvent
. - Adição de
AccessibilityManagerCompat
para oferecer compatibilidade comAccessibilityManager
. - Adição de
AccessibilityNodeInfoCompat
para oferecer compatibilidade comAccessibilityNodeInfo
. - Adição de
AccessibilityRecordCompat
para oferecer compatibilidade comAccessibilityRecord
. - Adição de
AccessibilityServiceInfoCompat
para oferecer compatibilidade comAccessibilityServiceInfo
. - Adição de
ViewGroupCompat
para oferecer compatibilidade com recursos de acessibilidade emViewGroup
. - Modificação de
ViewCompat
para oferecer compatibilidade com recursos de acessibilidade emView
.
- Adição de
- Mudanças no ViewPager:
- Adição de compatibilidade com margens entre páginas.
Uma opção
Drawable
pode ser fornecida para preencher as margens. - Adição de compatibilidade com
EdgeEffect
. - Adição de compatibilidade com a navegação pelo teclado.
- Adição de compatibilidade com o controle de quantas páginas são mantidas em cada lado da página atual.
- Física de toque aprimorada.
- Correção de bugs no comportamento da interface do usuário.
- Adição de compatibilidade com margens entre páginas.
Uma opção
- Compatibilidade com APIs de acessibilidade:
- Mudanças na Biblioteca de Suporte v4:
-
- Adição de
EdgeEffectCompat
para oferecer compatibilidade comEdgeEffect
. - 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 paraView
s 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 deAsyncTask
s 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 deAsyncTask
manter o mesmo comportamento em todas as versões da plataforma.
- Adição de
- Mudanças na Biblioteca de Suporte v4:
-
- Adiciona compatibilidade com
Fragment.SavedState
- Adiciona
MotionEventCompat
para oferecer compatibilidade com APIsMotionEvent
mais recentes - Adiciona
VelocityTrackerCompat
para oferecer compatibilidade com APIs de umVelocityTracker
mais recente - Adiciona
ViewConfigurationCompat
para oferecer compatibilidade com APIs de umViewConfiguration
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
: umViewGroup
que gerencia o layout das visualizações filhas, entre as quais o usuário pode deslizar.PagerAdapter
: um adaptador que preenche oViewPager
com as visualizações que representam cada página.FragmentPagerAdapter
: uma extensão dePagerAdapter
para virar entre um fragmento e outro.FragmentStatePagerAdapter
: uma extensão dePagerAdapter
para alternar entre fragmentos que usa o suporte da biblioteca paraFragment.SavedState
.
- Adiciona compatibilidade com
- Nova Biblioteca de Suporte da v13:
-
- Inclui
FragmentPagerAdapter
eFragmentStatePagerAdapter
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).
- Inclui
- Mudanças na biblioteca v4:
-
- Compatibilidade com animações de fragmento
- Correção do bug
Fragment.onActivityResult()
Revisão 22
Março de 2015
Revisão 21.0.3
Dezembro de 2014
Revisão 21.0.2
Novembro de 2014
Revisão 21.0.1
Novembro de 2014
Revisão 21
Outubro de 2014
Revisão 20
Julho de 2014
Revisão 19.1.0
Março de 2014
Revisão 19.0.1
Dezembro de 2013
Revisão 19
Outubro de 2013
Revisão 18
Julho de 2013
Revisão 13
Maio de 2013
Revisão 12
Fevereiro de 2013
Revisão 11
Novembro de 2012
Revisão 10
Agosto de 2012
Revisão 9
Junho de 2012
Revisão 8
Abril de 2012
Revisão 7
Março de 2012
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
.
Revisão 5
Dezembro de 2011
Revisão 4
Outubro de 2011
Revisão 3
Julho de 2011
Revisão 2
Maio de 2011
Revisão 1
Março de 2011
Versão inicial com a Biblioteca v4.