Android – Fragmentos del cajón de navegación
He implementado el cajón de navegación en mi aplicación Android. pero ahora quiero ser capaz de cambiar el diseño utilizando fragmentos cuando el usuario hace clic en cualquier elemento de la lista en la barra de navegación. Esto es lo que tengo hasta ahora:
XML
- Propósito de navegación que funcionaría con mapas y waze
- Color de fondo del elemento del cajón de navegación para el elemento seleccionado
- Cómo cambiar el color de la barra de estado en android
- Fragmento de NavigationDrawer con ListView y encabezado personalizado
- Recycler View No se muestra
<android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/drawer_layout" android:orientation="horizontal" android:layout_width="match_parent" android:layout_height="match_parent"> <FrameLayout android:id="@+id/content_frame" android:layout_width="match_parent" android:background="#000000" android:layout_height="match_parent" > </FrameLayout> <ListView android:id="@+id/left_drawer" android:layout_width="220dp" android:layout_height="match_parent" android:layout_gravity="start" android:choiceMode="singleChoice" android:divider="@android:color/transparent" android:dividerHeight="0dp" android:background="#111"/> </android.support.v4.widget.DrawerLayout>
Archivo Java
public class MainActivity extends Activity { final String[] data ={"one","two","three"}; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, data); final DrawerLayout drawer = (DrawerLayout)findViewById(R.id.drawer_layout); final ListView navList = (ListView) findViewById(R.id.left_drawer); navList.setAdapter(adapter); navList.setOnItemClickListener(new AdapterView.OnItemClickListener(){ @Override public void onItemClick(AdapterView<?> parent, View view, final int pos,long id){ drawer.setDrawerListener( new DrawerLayout.SimpleDrawerListener(){ @Override public void onDrawerClosed(View drawerView){ super.onDrawerClosed(drawerView); } }); drawer.closeDrawer(navList); } }); } }
Utilizando el código anterior, implementé el cajón de navegación en mi aplicación y veo "uno", "dos" y "tres" elementos de lista en el cajón de navegación, pero no ocurre nada cuando hago clic en ellos, excepto el cajón se cierra. Así pues, mi pregunta es: ¿cómo agrego la funcionalidad del fragmento al código dado arriba?
Soy principiante. ¡Gracias por adelantado!
- Android Navigation Drawer implementado con Actividades
- ¿Es correcta la navegación en la aplicación iosched 13?
- Cómo implementar android Barra de herramientas Botón Atrás
- ¿Debo especificar el nombre de la actividad principal en el manifiesto de Android?
- SingleTask launchMode en android no funciona
- Implemente el cajón deslizante con el visor donde se encuentra el cajón deslizante en el visor
- Cómo ocultar ActionBar y NavigationBar después de un cierto tiempo de retardo?
- Android: transición errónea al utilizar navigateUpFromSameTask ()
Al hacer clic,
selectItem(pos);
Entonces
public void selectItem(int position) { switch(position) { case 0: // fragment1 // use fragment transaction and add the fragment to the container FragmentManager fragmentManager = getFragmentManager() FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction(); Fragment1 fragment = new Fragment1(); fragmentTransaction.add(R.id.content_frame, fragment); fragmentTransaction.commit(); break; case 1: // fragment2 break; case 2: // fragment2 break; } }
utilizar esta:
public class MenuFragmentActivity extends FragmentActivity{ @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.base_layout); addFragments(new Sample(), false, false, AndyConstants.CONTENT_PAGE); } public void addFragments(Fragment fragment, boolean animate, boolean addToBackStack, String tag) { FragmentManager manager = getSupportFragmentManager(); FragmentTransaction ft = manager.beginTransaction(); if (animate) { ft.setCustomAnimations(R.anim.fragment_from_right, R.anim.fragment_from_left, R.anim.fragment_from_right, R.anim.fragment_from_left); } if (addToBackStack) { ft.addToBackStack(tag); } ft.replace(R.id.content_frame, fragment); ft.commit(); }
}
Para Fragmento:
public class Sample extends Fragment { @Override public void onCreate(Bundle savedInstanceState) { // TODO Auto-generated method stub super.onCreate(savedInstanceState); } @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { // TODO Auto-generated method stub View view = inflater.inflate(R.layout.page, container, false); return view; } }
- Detección de encendido / apagado de la pantalla
- Abrir navegador con una url con encabezados adicionales para Android