Quelle est l’amélioration de AppCompatActivity sur ActionBarActivity?

android.support.v7.app.AppCompatActivity été ajouté à la dernière bibliothèque de support v7 hier.

Il est dit que ActionBarActivity est devenu obsolète au profit du nouvel AppCompatActivity et que AppCompatActivity est la classe de base pour les activités qui utilisent les fonctionnalités de la barre d’action de la bibliothèque de support. Alors, quelles sont les nouvelles fonctionnalités de AppCompatActivity sur ActionBarActivity ? Quelles améliorations AppCompatActivityAppCompatActivity -il 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 depuis android.support.v4.app.FragmentActivity est la classe parente directe d’ ActionBarActivity ! Je veux dire, en fait, maintenant que ActionBarActivity peut faire tout ce que AppCompatActivity peut faire, pourquoi Android a-t-il sorti ce dernier?

Pendant ce temps, j’ai vu un article de blog indiquant: ” Ce n’est pas un nom de ActionBarActivity à AppCompatActivity , la logique interne d’ AppCompat est disponible via AppCompatDelegate “, alors quelle est la ” logique interne ” d’ AppCompat ? Que peut faire AppCompatDelegate ? Quelqu’un pourrait-il poster des codes à ce sujet?

    Comme Chris l’a écrit, la nouvelle version obsolète d’ ActionBarActivity (la classe AppCompatActivity ) est une classe de compatibilité descendante sûre. Sa dépréciation est juste un indice pour vous demander d’utiliser directement AppCompatActivity place. AppCompatActivity est une nouvelle implémentation plus générique qui utilise la classe AppCompatDelegate interne.

    Si vous commencez un nouveau développement, vous devriez plutôt utiliser la nouvelle classe AppCompatActivity immédiatement. Si vous avez la possibilité de mettre à jour votre application, remplacez également ActionBarActivity par la nouvelle activité. Sinon, vous pouvez restr avec une activité obsolète et il n’y aura aucune différence de comportement.

    Concernant 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, qui, à son tour, n’hérite pas d’ AppCompatActivity mais vous souhaitez que cette activité comporte des widgets de matières teintées (vues). Pour que cela se produise, 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 pour la liste complète des méthodes) les appels à l’instance AppCompatDelegate interne. AppCompatDelegate fera le rest et votre activité “à l’ancienne” sera “matérialisée”.

    C’est principalement un changement de nom: ActionBarActivity ne décrit pas vraiment tout ce qu’il fait maintenant. Vous pouvez utiliser ActionBarActivity toute sécurité si vous le souhaitez. Pensez-y comme un lien symbolique.

    La bibliothèque de prise en charge AppCompat a démarré 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 a assumé de nouvelles responsabilités : mise à disposition de la palette de couleurs des matériaux, de la coloration des widgets, de la prise en charge de la barre d’outils, etc., sur tous les périphériques API 7+. Avec cela, le nom ActionBarActivity ne couvrait pas vraiment toute la scope de ce qu’il faisait réellement .

    http://android-developers.blogspot.it/2015/04/android-support-library-221.html

    AppCompatActivity été introduit dans Android-SDK depuis la sortie de la bibliothèque Android Support AppCompat .

    AppCompatActivity est la classe enfant directe de FragmentActivity du support v4 et la classe parent directe d’ ActionBarActivity .

    AppCompatActivity est la classe de base des activités qui utilisent les fonctionnalités de la barre d’action de la bibliothèque de support .

    Vous pouvez append un ActionBar à votre activité lors de l’exécution sur API niveau 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 bibliothèque appcompat de support v7, elle ajoute la prise en charge du modèle de conception de l’interface utilisateur Action Bar . Cette bibliothèque prend en charge les implémentations de l’interface utilisateur de conception de matériel .

    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’action.
    • AppCompatActivity – Ajoute une classe d’activité d’application qui peut être utilisée comme classe de base pour les activités qui utilisent l’implémentation de la barre d’action Support Library .
    • AppCompatDialog – Ajoute une classe de dialog qui peut être utilisée comme classe de base pour les boîtes de dialog thématiques AppCompat .
    • ShareActionProvider – Ajoute la prise en charge d’une action de partage standardisée (telle que la messagerie électronique ou la publication d’applications sociales) pouvant être incluse dans une barre d’action.

    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 / .

    Auparavant, le seul point d’entrée dans AppCompat était la classe ActionBarActivity maintenant obsolète. Malheureusement, cela vous a obligé à utiliser une hiérarchie d’activité définie qui rendait les choses comme l’utilisation de PreferenceActivity impossible.

    voir le support-libraries-v22-1-0 de chris banes pour plus d’informations

    La dernière version de la bibliothèque de support Android, 22.1, désapprouve ActionBarActivity en faveur de AppCompatActivity , qui promet d’apporter une seule AppCompatActivity d’ AppCompatActivity cohérente pour tous les périphériques à partir de l’API de niveau 7 et supérieur.