Quel est l'amélioration de AppCompatActivity sur ActionBarActivity?
android.support.v7.app.AppCompatActivity
a été ajouté dans la dernière v7 bibliothèque de prise en charge comme une nouvelle fonctionnalité hier.
Il est dit que ActionBarActivity
a été dépréciée en faveur de la nouvelle AppCompatActivity
et que AppCompatActivity
est la classe de base pour les activités qui utilisent la bibliothèque de prise en charge de l'action de la barre de fonctions. Alors, quelles sont les nouvelles fonctionnalités de AppCompatActivity
sur ActionBarActivity
? Quelles améliorations ne AppCompatActivity
ont plus de ActionBarActivity
? Et quels sont les avantages de AppCompatActivity
? Quelqu'un pourrait fournir quelques échantillons?
Des conseils sont appréciés. Et merci à l'avance.
PS: ce qui m'a le plus surpris, c'est que AppCompatActivity
qui est étendu à partir d' android.support.v4.app.FragmentActivity
est le parent direct de la classe de ActionBarActivity
! Je veux dire en fait, maintenant que ActionBarActivity
peut faire tout ce que AppCompatActivity
peut le faire, pourquoi Android poussé ces derniers?
Pendant ce temps, j'ai vu un post de blog qui stipule: "Ce n'est pas un changement de nom de ActionBarActivity
à AppCompatActivity
, la logique interne de AppCompat
est disponible via AppCompatDelegate
", quel est donc le "logique interne" de AppCompat
? Ce qui peut AppCompatDelegate
faire? Quelqu'un pourrait poster des codes à ce sujet?
- android-developers.blogspot.com/2015/04/...
- Je l'ai lu, c'est une introduction, trop peu profonde.
- AppCompatActivity est parent de la classe de ActionBarActivity. Et pour plus d'idée, vous avez besoin de regarder dans le code.
- Oui, je l'ai remarqué.
Vous devez vous connecter pour publier un commentaire.
Comme Chris l'a écrit, la nouvelle version obsolète de
ActionBarActivity
(une extension deAppCompatActivity
de classe est un moyen sûr d'utiliser la compatibilité descendante de la classe. Son autodérision est juste une astuce pour vous demander d'utiliser les nouvellesAppCompatActivity
directement à la place.AppCompatActivity
est un nouveau, plus générique de mise en œuvre qui utiliseAppCompatDelegate
classe interne.Si vous commencez un nouveau développement, alors vous devriez plutôt utiliser les nouvelles
AppCompatActivity
classe tout de suite. Si vous avez une chance de mettre à jour votre application, puis remplacer l'obsolèteActionBarActivity
par la nouvelle activité. Sinon, vous pouvez rester avec déconseillé d'activité et il n'y aura pas de différence dans le comportement à tous.Concernant
AppCompatDelegate
, il vous permet d'avoir de nouveaux teinté widgets dans une activité, qui n'est niAppCompatActivity
niActionBarActivity
.Par exemple, vous héritez d'une activité à partir d'une bibliothèque externe, qui, à son tour, ne pas hériter de
AppCompatActivity
mais vous voulez cette activité teinté de matériaux de widgets (points de vue). Pour y arriver, vous devez créer une instance deAppCompatDelegate
à l'intérieur de votre activité, de 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 de remplacement transférer les appels vers l'intérieurAppCompatDelegate
instance.AppCompatDelegate
fera le reste, et votre "old-fashion" activité "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 en toute sécuritéActionBarActivity
si vous le souhaitez. Pensez-y comme un lien symbolique.AppCompatActivity
est le parent direct de la classe deActionBarActivity
, maintenant queActionBarActivity
peut faire tout ce queAppCompatActivity
peut le faire, pourquoiAndroid
poussé le plus tard?ActionBarActivity
quand il est supprimé de la bibliothèque de prise en charge (par ex. lors de la mise à jour de votre application) je recommande d'éviter de l'utiliser à partir de maintenant.http://android-developers.blogspot.it/2015/04/android-support-library-221.html
AppCompatActivity
a été introduit dans Android-SDK depuis la sortie de le soutien android appcompat bibliothèque.AppCompatActivity
est l'enfant direct de la classe deFragmentActivity
de soutien v4 et le parent direct de la classe deActionBarActivity
.AppCompatActivity
est la classe de base pour les activités qui utilisent le bibliothèque de prise en charge de la barre d'action fonctionnalités.Vous pouvez ajouter un
ActionBar
de votre activité lors de l'exécution sur API de niveau 7 ou supérieur par l'élargissement de cette classe en fonction de votre activité et définition de l'activité thème de Thème.AppCompat ou un thème similaire.De soutien, v7 appcompat de la bibliothèque, il ajoute le support pour le Barre d'Action conception de l'interface utilisateur motif. Cette bibliothèque comprend le soutien pour la conception de matériel implémentations de l'interface utilisateur.
Ici sont quelques-unes des principales classes incluses dans la v7 appcompat bibliothèque:
ActionBar
- Fournit une implémentation de la barre d'action de l'utilisateurl'interface de modèle.
AppCompatActivity
- Ajoute une activité de l'application de classe qui peut êtreutilisée comme classe de base pour les activités qui utilisent le Bibliothèque de prise en charge
barre d'action mise en œuvre.
AppCompatDialog
- Ajoute une classe de boîte de dialogue qui peut être utilisé comme une baseclasse pour AppCompat sur le thème de boîtes de dialogue.
ShareActionProvider
- Ajoute la prise en charge de la normalisation de partage d'action(tels que le courriel ou la publication d'applications sociales) qui peut être
inclus dans une barre d'action.
Après le téléchargement de la Android Bibliothèques de prise en charge, cette bibliothèque est située dans le /extras/android/support/v7/appcompat/ répertoire.
android.support.v4.app.ActivityCompat
? Est-ce juste que l'ancien nom deAppCompatActivity
?Auparavant, le seul point d'entrée dans
AppCompat
a été par le biais de la désormais obsolèteActionBarActivity
classe. Malheureusement, cela vous a forcé à l'aide d'un ensemble de l'Activité de la hiérarchie qui fait des choses comme l'utilisation dePreferenceActivity
impossible.voir chris banes de soutien-bibliothèques-v22-1-0 pour plus d'info
La dernière version d'android support library, 22.1, dénonçait la
ActionBarActivity
en faveur deAppCompatActivity
, qui promet d'apporter un unique et cohérenteActionBar
de tous les périphériques à partir de l'API de Niveau 7 et au-dessus de