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
- Color de fondo del elemento del cajón de navegación para el elemento seleccionado
- Android: Regresar al fragmento anterior en la parte posterior de la prensa
- Android Navigation Drawer implementado con Actividades
- Cómo cambiar el color de la barra de estado en android
- NavigationDrawer con Actividades vs. NavigationDrawer con Fragments
<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: transición errónea al utilizar navigateUpFromSameTask ()
- Recycler View No se muestra
- ¿Cómo agrego el cajón de navegación a mi código existente?
- Implemente el cajón deslizante con el visor donde se encuentra el cajón deslizante en el visor
- Pestañas intercambiables en el fragmento Menú Deslizante
- Android - Navegación desde la actividad hasta el fragmento
- Cómo implementar android Barra de herramientas Botón Atrás
- Integre tabhost y el cajón de navegación
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