android.support.v7.app.AppCompatActivity
a été ajoutée hier à la dernière bibliothèque de support v7 en tant que nouvelle fonctionnalité.
On dit que ActionBarActivity
a été dépréciée en faveur de la nouvelle AppCompatActivity
et qui AppCompatActivity
est la classe de base pour les activités qui utilisent les actions bibliothèque de fonctions support de bar. Alors, quelles sont les nouvelles fonctionnalités de AppCompatActivity
over ActionBarActivity
? Quelles améliorations AppCompatActivity
ont plus 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 ce AppCompatActivity
qui est étendu à partir de android.support.v4.app.FragmentActivity
la classe parente directe de ActionBarActivity
! Je veux dire en fait maintenant qui ActionBarActivity
peut faire tout ce qui AppCompatActivity
peut faire, pourquoi Android a-t-il poussé ce dernier?
Pendant ce temps, j'ai vu un article de blog qui déclare: " Ce n'est pas un changement de nom de ActionBarActivity
à AppCompatActivity
, la logique interne de AppCompat
est disponible viaAppCompatDelegate
", alors quelle est la " logique interne " de AppCompat
? Que peut AppCompatDelegate
faire? Quelqu'un pourrait-il publier des codes à ce sujet?
Réponses:
Comme Chris l'a écrit, la nouvelle version obsolète de
ActionBarActivity
(laAppCompatActivity
classe d' extension ) est une classe de compatibilité descendante sûre à utiliser. Sa dépréciation n'est qu'un indice pour vous demander d'utiliserAppCompatActivity
directement new à la place.AppCompatActivity
est une nouvelle implémentation plus générique qui utilise laAppCompatDelegate
classe en interne.Si vous démarrez un nouveau développement, vous devriez plutôt utiliser une nouvelle
AppCompatActivity
classe tout de suite. Si vous avez la possibilité de mettre à jour votre application, remplacez également obsolèteActionBarActivity
par la nouvelle activité. Sinon, vous pouvez rester avec une activité obsolète et il n'y aura aucune différence de comportement.En
AppCompatDelegate
ce qui concerne , cela vous permet d'avoir de nouveaux widgets teintés dans une activité, ce qui n'est niAppCompatActivity
niActionBarActivity
.Par exemple, vous héritez d'une activité d'une bibliothèque externe, qui, à son tour, n'hérite pas de
AppCompatActivity
mais vous voulez que cette activité ait des widgets (vues) de matériaux teintés. Pour y arriver, vous devez créer une instance de l'AppCompatDelegate
intérieur de votre activité, remplacer les méthodes de cette activité commeaddContentView()
,setContentView()
etc. (voirAppCompatDelegate
javadoc pour la liste complète des méthodes), et à l'intérieur de ces méthodes surchargées, transférer les appels vers l'AppCompatDelegate
instance interne .AppCompatDelegate
fera le reste et votre activité «à l'ancienne» sera «matérialisée».la source
C'est surtout un changement de nom:
ActionBarActivity
ne décrit pas vraiment tout ce qu'il fait maintenant. Vous pouvez utiliser en toute sécuritéActionBarActivity
si vous le souhaitez. Pensez-y comme un lien symbolique.la source
AppCompatActivity
est la classe parente directe deActionBarActivity
, maintenant quiActionBarActivity
peut faire tout ce quiAppCompatActivity
peut faire, pourquoiAndroid
expulsé le plus tard?ActionBarActivity
moment où il est supprimé de la bibliothèque de support (par exemple lors de la mise à jour de votre application), je vous recommande d'éviter de l'utiliser à partir de maintenant.http://android-developers.blogspot.it/2015/04/android-support-library-221.html
la source
AppCompatActivity
a été introduit dans Android-SDK depuis la sortie de la bibliothèque appcompat de support Android .AppCompatActivity
est la classe enfant directe deFragmentActivity
de support v4 et la classe parent directe deActionBarActivity
.AppCompatActivity
est la classe de base pour les activités qui utilisent la barre d'actions de la bibliothèque de support fonctionnalités de la .Vous pouvez ajouter un
ActionBar
à votre activité lors de l'exécution au niveau d'API 7 ou supérieur en étendant cette classe pour votre activité et en définissant le thème d'activité sur Theme.AppCompat ou un thème similaire.Quant à la prise en charge de la bibliothèque appcompat v7, elle ajoute la prise en charge du modèle de conception d'interface utilisateur de la barre d'action . Cette bibliothèque prend en charge les implémentations d'interface utilisateur de conception de matériaux .
Voici quelques-unes des classes clés incluses dans la bibliothèque appcompat v7:
ActionBar
- Fournit une implémentation du modèle d'interface utilisateur de la barre d'actions.AppCompatActivity
- Ajoute une classe d'activité d'application qui peut être utilisée comme classe de base pour les activités qui utilisent la barre d'actions de la bibliothèque de support implémentation de la .AppCompatDialog
- Ajoute une classe de dialogue qui peut être utilisée comme classe de base pour les boîtes de dialogue à thème AppCompat .ShareActionProvider
- Ajoute la prise en charge d'une action de partage standardisée (comme un courrier électronique ou une publication sur des applications sociales) qui peut être incluse dans une barre d'actions.Après avoir téléchargé les bibliothèques de support Android , cette bibliothèque se trouve dans le répertoire / extras / android / support / v7 / appcompat / .
la source
android.support.v4.app.ActivityCompat
? Est-ce juste l'ancien nom deAppCompatActivity
?Auparavant, le seul point d'entrée dans
AppCompat
était via laActionBarActivity
classe désormais obsolète . Malheureusement, cela vous a obligé à utiliser une hiérarchie d'activités définie, ce qui a permis d'utiliserPreferenceActivity
impossible l' .voir support-bibliothèques-v22-1-0 de chris banes pour plus d'informations
la source
La dernière version de la bibliothèque de support Android, 22.1, rend obsolète le
ActionBarActivity
en faveur deAppCompatActivity
, qui promet d'apporter une cohérence uniqueActionBar
pour tous les appareils à partir du niveau d'API 7 et supérieur.la source