web-dev-qa-db-fra.com

Pourquoi ActionBarActivity est-il déconseillé?

J'ai récemment installé Android Studio et j'ai commencé à coder une activité destinée à étendre ActionBarActivity et elle a montré que celle-ci était obsolète. Alors, comment puis-je configurer une barre d'action pour mon activité. De plus, la formation de mise en route utilise la variable ActionBarActivity sans indiquer qu’elle est obsolète.

116
Degreat Yartey

ActionBar est obsolète depuis que Toolbar a été introduit. Toolbar peut être considéré comme un "sur-ensemble" de toute barre d'action. Ainsi, le 'vieux' ActionBar est maintenant un exemple de Toolbar. Si vous souhaitez une fonctionnalité similaire, mais sans avertissement de dépréciation, procédez comme suit:

Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
if (toolbar != null) {
    toolbar.setTitle(R.string.app_name);
    setSupportActionBar(toolbar);
}

Vous devez définir le Toolbar dans votre layout xml:

<Android.support.v7.widget.Toolbar
    xmlns:Android="http://schemas.Android.com/apk/res/Android"
    Android:id="@+id/toolbar"
    Android:minHeight="?attr/actionBarSize"
    Android:background="?attr/colorPrimary"
    Android:layout_width="match_parent"
    Android:layout_height="wrap_content"
    Android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
    Android:popupTheme="@style/ThemeOverlay.AppCompat.Light">
</Android.support.v7.widget.Toolbar>

Avec cette nouvelle fonctionnalité, vous pouvez créer votre propre ActionBar personnalisé et laisser Android faire le gros du travail. Créez simplement votre propre vue personnalisée qui s'étend de Toolbar.


De plus, vous devez utiliser AppCompatActivity au lieu de ActionBarActivity, il a été introduit dans la dernière version de la bibliothèque appcompat. Alors n'oubliez pas de mettre à jour Gradle

compile 'com.Android.support:appcompat-v7:22.1.1'
117
Endran

Voici la réponse du publier dans Android blog des développeurs :

"ActionBarActivity est déconseillé en faveur de la nouvelle AppCompatActivity. "

Vous pouvez en lire plus à ce sujet ici.

65
nvinayshetty

Cette réponse donne un moyen simple d'éliminer le message d'erreur. Vous pouvez voir comme une addition à d'autres.

Lorsque nous modifions la classe d'activité parent: ActionBarActivity en AppCompatActivity, le message d'erreur disparaîtra.

Vous pouvez cliquer ici pour plus d'informations.

5
Wentao Ma