android.support.v7.app.AppCompatActivity
foi adicionado à biblioteca de suporte v7 mais recente como um novo recurso ontem.
Diz-se que ActionBarActivity
foi preterido em favor da nova AppCompatActivity
e que AppCompatActivity
é a classe base para atividades que usam os recursos da barra de ação da biblioteca de suporte. Então, quais são os novos recursos do AppCompatActivity
over ActionBarActivity
? Quais aprimoramentos AppCompatActivity
têm mais ActionBarActivity
? E quais são as vantagens AppCompatActivity
? Alguém poderia fornecer algumas amostras?
Todas as dicas são apreciadas. E obrigado antecipadamente.
PS: o que mais me surpreendeu é o AppCompatActivity
que é estendido a partir android.support.v4.app.FragmentActivity
da classe pai direta ActionBarActivity
! Quero dizer, na verdade, agora que ActionBarActivity
pode fazer qualquer coisa AppCompatActivity
, por que o Android empurrou o último?
Enquanto isso, vi um post no blog que afirma: " Não é uma renomeação de ActionBarActivity
para AppCompatActivity
, a lógica interna de AppCompat
está disponível viaAppCompatDelegate
", então qual é a " lógica interna " de AppCompat
? O que pode AppCompatDelegate
fazer? Alguém poderia postar alguns códigos sobre isso?
Respostas:
Como Chris escreveu, a nova versão preterida
ActionBarActivity
(aAppCompatActivity
classe que se estende ) é segura para usar a classe de compatibilidade com versões anteriores. A descontinuação é apenas uma dica para você pedir para usar o novoAppCompatActivity
diretamente.AppCompatActivity
é uma implementação nova e mais genérica que usa aAppCompatDelegate
classe internamente.Se você inicia um novo desenvolvimento, deve usar a nova
AppCompatActivity
classe imediatamente. Se você tiver a chance de atualizar seu aplicativo, substitua também a obsoletaActionBarActivity
pela nova atividade. Caso contrário, você poderá permanecer com atividades obsoletas e não haverá nenhuma diferença no comportamento.Quanto a
AppCompatDelegate
isso, permite que você tenha novos widgets coloridos em uma atividade, que não é nemAppCompatActivity
nemActionBarActivity
.Por exemplo, você herda uma atividade de uma biblioteca externa que, por sua vez, não herda,
AppCompatActivity
mas deseja que essa atividade tenha widgets de materiais coloridos (visualizações). Para que isso aconteça, você precisa criar uma instância deAppCompatDelegate
dentro de sua atividade, substituir métodos dessa atividade comoaddContentView()
,setContentView()
etc. (consulteAppCompatDelegate
javadoc para obter a lista completa de métodos) e, dentro desses métodos substituídos, encaminhar as chamadas para aAppCompatDelegate
instância interna .AppCompatDelegate
fará o resto e sua atividade "antiquada" será "materializada".fonte
É principalmente uma mudança de nome:
ActionBarActivity
não descreve realmente tudo o que faz agora. Você pode usar com segurança,ActionBarActivity
se desejar. Pense nisso como um link simbólico.fonte
AppCompatActivity
é a classe pai direta deActionBarActivity
, agora queActionBarActivity
pode fazer tudo o queAppCompatActivity
pode fazer, por queAndroid
empurrar para fora mais tarde?ActionBarActivity
quando ele é descartado da biblioteca de suporte (por exemplo, ao atualizar seu aplicativo), recomendo evitar o uso a partir de agora.http://android-developers.blogspot.it/2015/04/android-support-library-221.html
fonte
AppCompatActivity
foi introduzido no Android-SDK desde o lançamento da biblioteca de aplicativos de suporte para Android .AppCompatActivity
é a classe filha diretaFragmentActivity
do suporte v4 e a classe pai diretaActionBarActivity
.AppCompatActivity
é a classe base para atividades que usam os recursos da barra de ação da biblioteca de suporte .Você pode adicionar um
ActionBar
a sua atividade ao executar na API nível 7 ou superior , estendendo esta classe para sua atividade e configurando o tema da atividade como Theme.AppCompat ou um tema semelhante.Quanto à biblioteca appcompat do suporte v7, ela adiciona suporte ao padrão de design da interface do usuário da Barra de Ação . Esta biblioteca inclui suporte para implementações de interface do usuário de design de material .
Aqui estão algumas das principais classes incluídas na biblioteca v7 appcompat:
ActionBar
- Fornece uma implementação do padrão da interface do usuário da barra de ação.AppCompatActivity
- Adiciona uma classe de atividade do aplicativo que pode ser usada como classe base para atividades que usam a implementação da barra de ação da Biblioteca de Suporte .AppCompatDialog
- Adiciona uma classe de diálogo que pode ser usada como classe base para diálogos com temas do AppCompat .ShareActionProvider
- Adiciona suporte para uma ação de compartilhamento padronizada (como email ou postagem em aplicativos sociais) que pode ser incluída em uma barra de ação.Depois de baixar as Bibliotecas de suporte do Android , essa biblioteca está localizada no diretório / extras / android / support / v7 / appcompat / .
fonte
android.support.v4.app.ActivityCompat
? Este é apenas o nome antigo deAppCompatActivity
?Anteriormente, o único ponto de entrada
AppCompat
era através daActionBarActivity
classe agora obsoleta . Infelizmente, isso forçou você a usar uma hierarquia de atividades definida quePreferenceActivity
impossibilitava o uso de coisas .veja support-libraries-v22-1-0 de chris banes para obter mais informações
fonte
A versão mais recente da biblioteca de suporte ao Android, 22.1, substitui o
ActionBarActivity
favor deAppCompatActivity
, que promete trazer um único consistenteActionBar
para todos os dispositivos que começam com o API Level 7 e superiorfonte