Android.support.v7.app.AppCompatActivity
a été ajouté hier à la dernière bibliothèque de support technique v7.
Il est dit que ActionBarActivity
a été déconseillé au profit de la nouvelle AppCompatActivity
et que AppCompatActivity
est la classe de base des activités qui utilisent les fonctions de la barre d'actions de la bibliothèque de support. Alors, quelles sont les nouvelles fonctionnalités de AppCompatActivity
sur ActionBarActivity
? Quelles améliorations ont AppCompatActivity
sur ActionBarActivity
? Et quels sont les avantages de AppCompatActivity
? Quelqu'un pourrait-il fournir quelques échantillons?
Tous les conseils sont appréciés. Et merci d'avance.
PS: ce qui m'a le plus surpris, c'est que AppCompatActivity
qui est étendu de Android.support.v4.app.FragmentActivity
est la classe parente directe de ActionBarActivity
! Je veux dire en fait maintenant que ActionBarActivity
peut faire tout ce que AppCompatActivity
peut faire, pourquoi Android a-t-il fait sortir ce dernier?
En même temps, j'ai lu un article de blog qui disait: "Ce n'est pas un changement de nom de ActionBarActivity
en AppCompatActivity
, la logique interne de AppCompat
est disponible via AppCompatDelegate
. ", alors quel est le" logique interne "de AppCompat
? Que peut faire AppCompatDelegate
? Quelqu'un pourrait-il poster des codes à ce sujet?
Comme Chris l'a écrit, la nouvelle version obsolète de ActionBarActivity
(celle qui étend la classe AppCompatActivity
) est une classe sûre de compatibilité avec les versions antérieures. Son obsolète est juste un indice pour vous demandant d’utiliser plutôt le nouveau AppCompatActivity
. AppCompatActivity
est une nouvelle implémentation plus générique qui utilise AppCompatDelegate
class en interne.
Si vous démarrez un nouveau développement, utilisez plutôt immédiatement la nouvelle classe AppCompatActivity
. Si vous avez la possibilité de mettre à jour votre application, remplacez également ActionBarActivity
(obsolète) _ par la nouvelle activité. Sinon, vous pouvez rester avec une activité obsolète et il n'y aura aucune différence de comportement.
En ce qui concerne AppCompatDelegate
, il vous permet d’avoir de nouveaux widgets teintés dans une activité qui n’est ni AppCompatActivity
ni ActionBarActivity
.
Par exemple, vous héritez d'une activité d'une bibliothèque externe, ce qui, à son tour, pas hérite de AppCompatActivity
, mais vous souhaitez que cette activité comporte des widgets de matériaux teintés (vues). Pour ce faire, vous devez créer une instance de AppCompatDelegate
dans votre activité, remplacer les méthodes de cette activité comme addContentView()
, setContentView()
etc. (voir AppCompatDelegate
javadoc liste de méthodes), et à l’intérieur de ces méthodes substituées, transfère les appels à l’instance interne AppCompatDelegate
. AppCompatDelegate
fera le reste et votre activité "à l'ancienne" sera "matérialisée".
C'est surtout un changement de nom: ActionBarActivity
ne décrit pas vraiment tout ce qu'il fait maintenant. Vous pouvez utiliser ActionBarActivity
en toute sécurité si vous le souhaitez. Pensez-y comme à un lien symbolique.
La bibliothèque de support AppCompat a commencé avec des débuts modestes mais importants: une seule barre d’action cohérente pour tous les périphériques API 7 et supérieurs. Dans la révision 21, , il assumait une nouvelle responsabilité : apporter la palette de couleurs des matériaux, la teinte des widgets, la prise en charge de la barre d’outils, etc. à tous les périphériques API 7+. Avec cela, le nom ActionBarActivity ne couvrait pas vraiment toute la portée de ce qu’il faisait réellement .
http://Android-developers.blogspot.it/2015/04/Android-support-library-221.html
AppCompatActivity
a été introduit dans Android-SDK depuis la sortie de bibliothèque de prise en charge Android.
AppCompatActivity
est la classe enfant directe de FragmentActivity
du support v4 et la classe parent directe de ActionBarActivity
.
AppCompatActivity
est la classe de base des activités qui utilisent les fonctionnalités barre d'outils de la bibliothèque de support.
Vous pouvez ajouter un ActionBar
à votre activité lorsque API de niveau 7 ou supérieur en étendant cette classe pour votre activité et en définissant le thème de l'activité sur Theme.AppCompat ou un thème similaire.
Quant à la bibliothèque de support v7 appcompat, elle ajoute la prise en charge du modèle de conception de l'interface utilisateur Action Bar. Cette bibliothèque inclut un support pour conception du matériel implémentations de l'interface utilisateur.
Voici quelques-unes des classes clés incluses dans la bibliothèque v7 appcompat:
ActionBar
- Fournit une implémentation du modèle d'interface utilisateur de la barre d'action.AppCompatActivity
- Ajoute une classe d'activité d'application pouvant être utilisée comme classe de base pour les activités utilisant la mise en œuvre barre d'outils de la bibliothèque de support.AppCompatDialog
- Ajoute une classe de dialogue pouvant être utilisée comme classe de base pour les dialogues à thème AppCompat.ShareActionProvider
- Ajoute la prise en charge d'une action de partage normalisée (telle que la messagerie électronique ou la publication sur des applications sociales) pouvant être incluse dans une barre d'actions.Après avoir téléchargé Bibliothèques de support Android, cette bibliothèque se trouve dans le répertoire /extras/Android/support/v7/appcompat/. annuaire.
Auparavant, le seul point d'entrée dans AppCompat
était par l'intermédiaire de la classe ActionBarActivity
maintenant obsolète. Malheureusement, cela vous a obligé à utiliser une hiérarchie d’activités définie qui rendait impossible l’utilisation de PreferenceActivity
.
voir chris banes's support-libraries-v22-1- pour plus d'informations
La dernière version de la bibliothèque de support Android, 22.1, rend obsolète le ActionBarActivity
au profit de AppCompatActivity
, qui promet d’apporter un seul ActionBar
cohérent pour tous les périphériques à partir de l’API. Niveau 7 et plus