Android: ¿Es posible el Cajón de navegación desde el lado derecho?

http://developer.android.com/training/implementing-navigation/nav-drawer.html

De acuerdo con este documento, no dice si es posible implementar el cajón desde el lado derecho. ¿Es posible? 🙁

Aquí está la documentación en el cajón y parece que puede configurarlo para que se abra desde la izquierda o la derecha.

La colocación y el diseño del cajón se controlan mediante el atributo android: layout_gravity en las vistas secundarias correspondientes a qué lado de la vista desea que aparezca el cajón: a la izquierda o a la derecha. (O inicio / final en las versiones de plataforma que admiten la dirección de diseño).

http://developer.android.com/reference/android/support/v4/widget/DrawerLayout.html

El NavigationDrawer se puede configurar para que se abra desde la izquierda, la derecha o ambas cosas. La clave es el orden de aparición de los cajones en la statement XML y el atributo layout_gravity. Aquí hay un ejemplo:

        

Mi aplicación se bloqueó con el error “No se encontró la vista del cajón con gravedad IZQUIERDA”.

Así que agregué esto al onOptionsItemSelected:

 if (item != null && item.getItemId() == android.R.id.home) { if (mDrawerLayout.isDrawerOpen(Gravity.RIGHT)) { mDrawerLayout.closeDrawer(Gravity.RIGHT); } else { mDrawerLayout.openDrawer(Gravity.RIGHT); } } 

Para agregar a https://stackoverflow.com/a/21781710/437039 solución.

Si está utilizando un proyecto de Cajón de navegación creado por Android Studio, las cosas cambiarán en onOptionsItemSelected . Desde que crearon la clase para niños, debes usar este código

 if (item != null && id == android.R.id.home) { if (mNavigationDrawerFragment.isDrawerOpen(Gravity.RIGHT)) { mNavigationDrawerFragment.closeDrawer(Gravity.RIGHT); } else { mNavigationDrawerFragment.openDrawer(Gravity.RIGHT); } return true; } 

Siguiente. En la clase NavigationDrawerFragment , debes crear 3 métodos:

Método 1

 public boolean isDrawerOpen(int gravity) { return mDrawerLayout != null && mDrawerLayout.isDrawerOpen(gravity); } 

Método 2

 public void closeDrawer(int gravity) { mDrawerLayout.closeDrawer(gravity); } 

Método 3

 public void openDrawer(int gravity) { mDrawerLayout.openDrawer(gravity); } 

Solo ahora, el cajón del lado derecho funcionará.

Puede usar NavigationView desde el diseño del material. Por ejemplo:

      

Para obtener un tutorial completo, consulte http://v4all123.blogspot.in/2016/03/simple-example-of-navigation-view-on.html

Sé que esta es una vieja pregunta, pero para aquellos que todavía están buscando la respuesta:

Sí, es posible. Por favor revisa mi respuesta en el siguiente enlace:

https://stackoverflow.com/a/19358114/1572408

Entonces usa estos códigos @amal, creo que esto te ayudará. XML:

           

// establece las imágenes requeridas

Código de actividad:

 ImageView iconl,iconr; private DrawerLayout mDrawerLayout; private ListView mDrawerList,mDrawerList2; ImageView iconl,iconr; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); iconl = (ImageView)findViewById(R.id.iconl); iconr = (ImageView)findViewById(R.id.iconr); mDrawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout); mDrawerList = (ListView) findViewById(R.id.list_slidermenu); mDrawerList2 = (ListView) findViewById(R.id.list_slidermenu2); mDrawerList.setOnItemClickListener(new SlideMenuClickListener()); mDrawerList2.setOnItemClickListener(new SlideMenuClickListener()); iconl.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub mDrawerLayout.openDrawer(Gravity.START); mDrawerLayout.closeDrawer(Gravity.END); } }); iconr.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub mDrawerLayout.openDrawer(Gravity.END); mDrawerLayout.closeDrawer(Gravity.START); } }); } } 

y aquí puede configurar su propio adaptador de lista para ambas listas y al hacer clic en el elemento visualizarVista (posición); método donde puedes agregar tu fragmento a framelayout.

 /** * Diplaying fragment view for selected nav drawer list item * */ private void displayView(int position) { // update the main content by replacing fragments Fragment fragment = null; switch (position) { case 0: fragment = new HomeFragment(); break; default: break; } if (fragment != null) { FragmentManager fragmentManager = getFragmentManager(); fragmentManager.beginTransaction() .replace(R.id.frame_container, fragment).commit(); // update selected item and title, then close the drawer mDrawerList.setItemChecked(position, true); mDrawerList.setSelection(position); mDrawerLayout.closeDrawer(mDrawerList); } else { // error in creating fragment Log.e("MainActivity", "Error in creating fragment"); } } 

Para establecer el cajón de navegación desde la derecha de la pantalla, convierta el diseño del cajón en el principal de la vista de navegación y configure la gravedad del diseño de la vista de navegación a la derecha.