web-dev-qa-db-fra.com

Menu de diapositive Android qui glisse des deux côtés à gauche et à droite

J'essaie de créer un menu à tiroirs coulissants comme celui de l'application Facebook. J'ai parcouru de nombreuses questions comme celle-ci ici ...__ et j'ai trouvé beaucoup de bibliothèques, mais toutes glissent de gauche à droite ou de droite à gauche dans des langues différentes. Je veux le faire glisser des deux côtés, de gauche à droite et de droite à gauche via deux boutons dans la barre supérieure. Est-ce que quelqu'un peut m'aider avec ça.

Merci d'avance.

12
M Hassen

c’est celui que j’utilise et fait exactement ce que vous voulez:

SlidingMenu

Vous devrez implémenter vous-même la fonctionnalité du bouton, mais cela ne devrait pas être trop difficile!

MODIFIER:

Un exemple:

SlidingMenu menuS = new SlidingMenu(this);
menuS.setMode(SlidingMenu.LEFT_RIGHT);
menuS.setMenu(R.layout.slideout_list);
menuS.setSecondaryMenu(R.layout.slideout_list2);

Comme le code l'indique, vous devez définir le mode sur LEFT_RIGHT et spécifier une présentation pour le menu de gauche (setMenu ()) et le menu de droite (setSecondaryMenu ()), ainsi que pour les autres options spécifiant la taille du menu, les ombres, etc.

18
Koded101

Essaye ça

https://github.com/srikanthgr/FacebookSlideOutmenu

implémentez ceci dans votre projet, c’est exactement ce que vous voulez.

5
user3217803

Cette question est maintenant très ancienne, mais elle est désormais intégrée à Android. Donc, si les gens cherchent et rencontrent ce post, ouvrez la section Tiroir de navigation sur les pages de développement d'Android. 

http://developer.Android.com/design/patterns/navigation-drawer.html

4
NetApex

Il existe une branche pour un menu coulissant de droite à gauche du SlidingMenu original here: https://github.com/jfeinstein10/SlidingMenu/tree/slidingright

Alternativement, il y a l'implémentation de Simon qui a des configurations simples pour faire le passage de de gauche à droite et de droite à gauche ici: https://github.com/ SimonVT/Android-menudrawer . Il y a un exemple simple sur la page.

Bien que je ne sois pas du genre à exprimer publiquement une opinion, je trouve la bibliothèque de Simon un peu plus facile à utiliser. ;-)

Cela étant dit, je ne suis cependant pas à emporter absolument aucun crédit de jfeinstein. Sa bibliothèque alimente une de mes meilleures applications de vente. :-)

4
Siddharth Lele

Utilisez celui-ci, c'est bon pour vous: 

abstract public class BaseSlideFragmentActivity extends SlidingFragmentActivity implements IActivity {
@Override
public void onCreate(Bundle savedInstanceState) {
    Utils.log(new Exception(), "[onCreate]");
    super.onCreate(savedInstanceState);

    getSlidingMenu().setMode(SlidingMenu.LEFT_RIGHT);
    getSlidingMenu().setTouchModeAbove(SlidingMenu.TOUCHMODE_FULLSCREEN);

    setBehindContentView(R.layout.menu_right);
    getSupportFragmentManager().beginTransaction().replace(R.id.menuRight, new MenuRightFragment()).commit();

    getSlidingMenu().setSecondaryMenu(R.layout.menu_left);
    getSupportFragmentManager().beginTransaction().replace(R.id.menuLeft, new MenuLeftFragment()).commit();

    getSlidingMenu().setShadowWidthRes(R.dimen.shadow_width);
    getSlidingMenu().setBehindOffsetRes(R.dimen.slidingmenu_offset);
    getSlidingMenu().setFadeDegree(0.35f);
    getSupportActionBar().setDisplayHomeAsUpEnabled(true);
    setSlidingActionBarEnabled(false);
}

public Activity getActivity() {
    return this;
}

@Override
public MyApplication getApplicationContext() {
    return (MyApplication) super.getApplicationContext();
}

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    Utils.log(new Exception(), "[onOptionsItemSelected]");
    switch (item.getItemId()) {
        case Android.R.id.home:
            toggle();
            return true;
        case R.id.setting:
            if (getSlidingMenu().isMenuShowing()) {
                toggle();
            }
            else {
                showSecondaryMenu();
            }
            return true;
    }
    return super.onOptionsItemSelected(item);
}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    Utils.log(new Exception(), "[onCreateOptionsMenu]");
    getSupportMenuInflater().inflate(R.menu.menu_setting, menu);
    return true;
}

}

3
sonida
 @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
       // setTitle(R.string.attach);
        // set the content view
        setContentView(R.layout.activity_main);

      // configure the Sliding right Menu
        SlidingMenu menuR = new SlidingMenu(this);
        menuR.setMode(SlidingMenu.RIGHT);
        menuR.setTouchModeAbove(SlidingMenu.TOUCHMODE_MARGIN);



   //     menuR.setShadowWidthRes(R.dimen.abc_action_bar_default_height);

     // menu.setShadowDrawable(R.drawable.shadow);right menu
        menuR.setBehindOffsetRes(R.dimen.abc_action_bar_default_height);
        menuR.setFadeDegree(0.35f);
        menuR.attachToActivity(this, SlidingMenu.SLIDING_CONTENT);
        menuR.setMenu(R.layout.right_menu_layout);


      // configure the Sliding left Menu
        SlidingMenu menuL = new SlidingMenu(this);
        menuL.setMode(SlidingMenu.LEFT);
        menuL.setTouchModeAbove(SlidingMenu.TOUCHMODE_MARGIN);


     //       menuL.setShadowWidthRes(R.dimen.abc_action_bar_default_height);

     // menu.setShadowDrawable(R.drawable.shadow);left menu
        menuL.setBehindOffsetRes(R.dimen.abc_action_bar_default_height);
        menuL.setFadeDegree(0.35f);
        menuL.attachToActivity(this, SlidingMenu.SLIDING_CONTENT);
        menuL.setMenu(R.layout.left_menu_layout);


    }
0
Hobii Sgonf