Android Master / Detalle de flujo dentro de ViewPager

He encontrado un problema que soy incapaz de solucionar, googled mucho pero no pude encontrar una solución.

En mi aplicación tengo un ViewPager que contiene 3 páginas. Estas páginas son fragmentos como deben ser. Esto funciona bien. Sin embargo, dos de estas páginas deben ser flujos Maestro / Detalle (uno para la lista de amigos, uno para el feed de noticias). Cuando creo un flujo maestro / detallado con fragmentos eclipse 2 y se crean 2 actividades. El ItemListActivity (el que necesita ser mostrado) implementa Callbacks del fragmento, y esto es una actividad, pero ViewPager sólo acepta Fragmentos dentro de sí mismo.

Así que la pregunta es: ¿Cómo puedo ubicar el flujo maestro / detallado dentro de un ViewPager?

¡Toda ayuda es muy apreciada! Estoy sin ideas aquí.

Gracias

Master / Detail Flow es sólo un apodo para 2 fragmentos que se utilizan en la misma vista de contenido, uno a la izquierda y otro a la derecha. Esa es la idea general. Ahora, el Flujo Maestro / Detalle puede usarse dentro de una Actividad (como Eclipse hace para la plantilla que describió) o dentro de un Fragmento, afortunadamente desde que Android 4.2 introdujo Fragmentos dentro de otros Fragmentos (esto también es compatible con la Biblioteca de Compatibilidad de Android para versión anterior De Android).

La plantilla generada por Eclipse está contenida en una Actividad (en tabletas) o en 2 Actividades (para teléfonos), porque Eclipse no sabe que necesita maestro / detalle dentro de un fragmento. Por lo tanto, no puede confiar en la plantilla de Eclipse. Pero no es tan difícil poner sólo 2 Fragmentos dentro de otro Fragmento.

Solo tienes que olvidar el ViewPager por un tiempo y hacer tu trabajo dentro del Fragmento que contendrá el Flujo Maestro / Detallado, vamos a llamarlo MasterFragment.

  1. Declara 2 más Fragmentos: InnerListFragment, InnerDetailFragment. También una InnerDetailActivity para teléfonos.
  2. Declare 2 archivos de diseño XML para MasterFragment:

    • Layout / fragment_master.xml – agrega dentro de este sólo el InnerListFragment <fragment> etiqueta
    • Layout-sw600dp / fragment_master.xml (para tablets> 7 ") – agregue las etiquetas InnerListFragment y InnerDetailFragment <fragment> .
  3. Ahora, no detallaré todo tu código java aquí, pero dentro de MasterFragment.java, debes comprobar si el dispositivo es una tableta para que sepas cuáles de los 2 fragmentos están activos en la pantalla.

    • Si se trata de un teléfono, sólo InnerListFragment es visible. Así que simplemente agregue la lista y onClickListener comenzará InnerDetailActivity en el que necesita poner InnerDetailFragment.

    • Si es una tableta, ambos fragmentos internos son visibles. No inicie una nueva actividad al hacer clic en un elemento de lista, sólo tiene una referencia a ambos fragmentos dentro de MasterFragment para que pueda comunicarse entre ellos.

Esa es la idea general. Si todavía tiene preguntas, pregunte.

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