Funcionalidad de UINavigationController similar a Android

En el iPhone uso un controlador de navegación para empujar y hacer estallar las vistas de. Muy útil.

¿Hay un equivalente en Android?

Normalmente en android, cada vista se muestra en su propia actividad. Puede leer acerca de las actividades en la documentación de los fundamentos de la aplicación . Para pasar a una nueva Actividad o vista, utilice una intención .

Si aún no lo ha hecho, le recomiendo que lea esos documentos andrógenos introductorios. No son demasiado largos, y hacen un buen trabajo de explicar la estructura básica del programa.

Esta es una vieja pregunta, pero creo que la respuesta ha cambiado. Ahora es posible imitar la pila de Nav en iOS en android usando Fragmentos. http://developer.android.com/reference/android/app/Fragment.html

Básicamente, en lugar de saltar de Actividad a Actividad, en su lugar, permanece en una Actividad que controla la visualización, organización y animación de Fragmentos que contienen cada uno su propio comportamiento, al igual que el modelo NavController / UIViewController en iOS.

También es compatible con versiones anteriores como una biblioteca estática para que pueda implementarla en dispositivos pre-Honeycomb. Estrategias para Honeycomb y compatibilidad con versiones anteriores

Hice un marco (github) para proporcionar un patrón de navegación jerárquico, con animaciones para proporcionar sentido de la navegación, en lugar de lanzar nuevas actividades cada vez.

Imagen básica básica de Android

He aquí cómo usarlo:

  • Añada el marco a su proyecto como un módulo
  • Agregue una nueva clase Java en su proyecto ("Archivo – Nuevo – Java Class"). Nota: Si está editando el archivo Activity.java que le proporciona la plantilla, elimine todas sus implementaciones y déjela vacía.
  • Hacer que se extienda NavigationActivity
  • Implementar todos los métodos abstractos de NavigationActivity

( En Android Studio si hace clic en Alt + insertar y seleccionar implementar – métodos todas las definiciones de función se generan automáticamente ).

public class NavigationTest extends NavigationActivity{ @Override public Fragment firstFragment() { //return the first fragment that will be shown } @Override public Boolean showBackButtonInFirstFragment() { //show back button already in the first Fragment //set to True if this activity is called by another Activity //the back button will then pop back to the previous Activity } @Override public Boolean showMasterDetailLayoutInTablets() { //set to false if you don't want a master-detail layout in tablets } } 

Presentando un nuevo Fragmento

Puede presentar un nuevo fragmento (con una animación agradable) llamando al método pushFragment de NavigationActivity.

 public void pushFragment(Fragment newFragment, animationType animation, boolean showAsDetailFragmentIfPossible) 

NuevoFragmento (Fragmento): Nuevo Fragmento que se presentará

Animation (animationType): Tipo de animación enum: RIGHT_TO_LEFT, BOTTOM_TO_TOP, FLIP

ShowAsDetailFragmentIfPossible (boolean): Si se establece como True, el usuario se encuentra en un Tablet y está utilizando un diseño de maestro-detalle, el Fragmento se mostrará en el fragmento de detalle (el panel de la derecha).

Puesto que puede acceder a la actividad desde cualquier fragmento con el método getActivity (), puede mostrar un nuevo Fragmento del Fragmento que se está mostrando actualmente . Por ejemplo usted puede poner este código dentro de un oyente del tecleo del botón:

 NextFragment f = new NextFragment(); NavigationActivity nav =((NavigationActivity)getActivity()); nav.pushFragment(f,NavigationActivity.animationType.RIGHT_TO_LEFT,false); 

No tiene que preocuparse por implementar el comportamiento del botón de retroceso. Esto es manejado automáticamente por la clase NavigationActivity.

FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.