Cómo restaurar el estado de vista de fragmentos de Android
Tengo el fragmento de los títulos de la aplicación y el fragmento del contenido en la pantalla. Cuando el usuario hace clic en el elemento en el fragmento de títulos, el fragmento correspondiente se crea e inserta en un fotograma y el título seleccionado se resalta en el fragmento de títulos.
La transacción se realiza con fragment.addToBackStack()
, por lo que cuando el usuario hace clic en la tecla BACK
, el fragmento anterior se restaura e inserta en el marco.
- Cómo llamar al método dentro del fragmento de la actividad donde el fragmento se creó dinámicamente
- GetFragmentManager.findFragmentByTag () devuelve null
- Cómo inflar la vista dentro del fragmento
- Correcta / mejor manera de manejar el problema de la transacción de fragmentos Android
- Fragmento reemplazado todavía visible en el fondo
¿Cuál es la mejor solución para restaurar el estado de vista cuando el administrador de transacciones restaura fragmentos?
El problema es que debo destacar el nombre del fragmento anterior en el fragmento de títulos y debo saber qué fragmento es. Lo solucioné almacenando el estado de la vista en mi propia pila: cuando se crea un fragmento y se restaura el cambio de backstack de la transacción utilizando el oyente del gestor de transacciones.
Pero esto no parece ser la solución correcta.
- Ya administra un GoogleApiClient con id 0 En FRAGMENT
- ¿Cuál es el ciclo de vida de un fragmento cuando se llama replace ()?
- ¿Por qué onResume () se llama en fragmentos ocultos?
- Listfragment ejemplo simple
- Fragmento no recibir devoluciones de llamada de menú
- Android.content.Context.getPackageName () 'en una referencia de objeto nulo
- Cómo acceder a la vista de actividad de los padres en el fragmento
- ¿Cómo obtener el ancho del fragmento?
Antes de la respuesta, la próxima vez recuerde agregar su código. Las ocasiones son mi respuesta no le ayudarán tanto como podría porque no sé realmente su código.
Esto es viejo, pero de todos modos, si entiendo su pregunta (y la arquitectura de la aplicación) correctamente, suena como un caso para la interfaz.
Ejemplo:
Agregue esta interfaz como miembro al fragmento de contenido:
public class ContentFragment extends Fragment{ public interface onFragmentTitleHighlighted{ public void highLightTitle(String title); } }
Y hacer que el fragmento de título lo implemente. Asegúrese de equipar sus fragmentos de contenido con el título fragmnet, y agregue una llamada a highLightTitle(String title);
En la llamada onCreateView (…) del fragmento de contenido. De esta manera, cada vez que se agregue un nuevo contenido fragmnet, se resaltará el título.
- Mono dando un error extraño en el emulador de Android
- Child Views Tomando demasiado tiempo para dibujar en la pantalla