210 votes

Le même tiroir de navigation dans différentes activités

J'ai créé un tiroir de navigation fonctionnel comme celui qui est présenté dans le tutoriel sur le site de l développeur.Android.com site web. Mais maintenant, je veux utiliser un tiroir de navigation, que j'ai créé dans la classe NavigationDrawer.class pour plusieurs activités dans mon application.

Je me demande si quelqu'un ici peut faire un petit tutoriel qui explique comment utiliser un tiroir de navigation pour plusieurs activités.

Je l'ai lu en premier sur ce site. Tiroir de navigation Android sur plusieurs activités

mais cela n'a pas fonctionné sur mon projet

public class NavigationDrawer extends Activity {
public DrawerLayout drawerLayout;
public ListView drawerList;
private ActionBarDrawerToggle drawerToggle;

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    drawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout);
    drawerToggle = new ActionBarDrawerToggle((Activity) this, drawerLayout, R.drawable.ic_drawer, 0, 0) {

        public void onDrawerClosed(View view) {
            getActionBar().setTitle(R.string.app_name);
        }

        public void onDrawerOpened(View drawerView) {
            getActionBar().setTitle(R.string.menu);
        }
    };
    drawerLayout.setDrawerListener(drawerToggle);

    getActionBar().setDisplayHomeAsUpEnabled(true);
    getActionBar().setHomeButtonEnabled(true);

    listItems = getResources().getStringArray(R.array.layers_array);
    drawerList = (ListView) findViewById(R.id.left_drawer);
    drawerList.setAdapter(new ArrayAdapter<String>(this, R.layout.drawer_list_item, android.R.id.text,
            listItems));

    drawerList.setOnItemClickListener(new OnItemClickListener() {
        @Override
        public void onItemClick(AdapterView<?> arg0, View arg1, int pos, long arg3) {
            drawerClickEvent(pos);
        }
    });
}

@Override
public boolean onOptionsItemSelected(MenuItem item) {

    if (drawerToggle.onOptionsItemSelected(item)) {
        return true;
    }
    return super.onOptionsItemSelected(item);

}

@Override
protected void onPostCreate(Bundle savedInstanceState) {
    super.onPostCreate(savedInstanceState);
    drawerToggle.syncState();
}

@Override
public void onConfigurationChanged(Configuration newConfig) {
    super.onConfigurationChanged(newConfig);
    drawerToggle.onConfigurationChanged(newConfig);
}
}

Dans cette activité, je veux avoir le tiroir de navigation, j'ai donc étendu 'NavigationDrawer' et dans d'autres activités, je veux utiliser le même tiroir de navigation.

  public class SampleActivity extends NavigationDrawer {...}

1 votes

Vous pouvez trouver les exemples aquí .

1 votes

Vous pouvez trouver de : stackoverflow.com/questions/33009469/

1voto

Ma réponse n'est qu'une réponse conceptuelle sans aucun code source. Elle pourrait être utile à certains lecteurs comme moi pour comprendre.

Cela dépend de votre approche initiale de l'architecture de votre application. Il existe essentiellement deux approches.

  1. Vous créez une activité (activité de base) et toutes les autres vues et écrans seront des fragments. Cette activité de base contient l'implémentation des dispositions du tiroir et du coordinateur. C'est en fait la façon de faire que je préfère, car le fait d'avoir de petits fragments autonomes rendra le développement de l'application plus facile et plus fluide.

  2. Si vous avez commencé le développement de votre application avec des activités, une pour chaque écran, alors vous allez probablement créer une activité de base, et toutes les autres activités s'étendent à partir de celle-ci. L'activité de base contiendra le code pour l'implémentation du tiroir et du coordinateur. Toute activité qui a besoin de l'implémentation du tiroir peut s'étendre à partir de l'activité de base.

Je préférerais personnellement éviter d'utiliser des fragments et des activités mélangés sans aucune organisation. Cela rend le développement plus difficile et finit par vous bloquer. Si vous l'avez fait, refactorez votre code.

0voto

Il est développé dans le tutoriel vidéo suivant

Tiroir de navigation sur les activités multiples utilisant l'activité de base

Il est très facile de créer une activité de base de tiroir de navigation et d'étendre cette activité de base de tiroir de navigation à toutes les activités sur lesquelles vous voulez afficher le tiroir de navigation,

  1. Créer un menu de navigation, un en-tête
  2. créer une activité de base pour le tiroir de navigation
  3. création d'une mise en forme du contenu
  4. Menu combiné, en-tête, disposition du contenu sur l'activité de base
  5. En utilisant la mise en page du cadre, insérez chaque activité dans le menu du tiroir.

Toutes les étapes sont clairement expliquées dans la vidéo

-1voto

droidlabel Points 9

Créez un tiroir de navigation dans votre MainActivity en utilisant le fragment.
Initialiser le tiroir de navigation dans MainActivity
Maintenant, dans toutes les autres activités que vous voulez utiliser le même tiroir de navigation, mettez DrawerLayout comme base et fragment comme tiroir de navigation. Il suffit de définir Android:name dans votre fragment en pointant vers votre fichier Java fragment. Vous n'aurez pas besoin d'initialiser le fragment dans les autres activités.
Vous pouvez accéder au tiroir de navigation par glissement dans d'autres activités, comme dans l'application Google Play Store.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X