En la tableta tenemos dos fragmentos (dos vistas diferentes de los mismos datos) que se encuentran uno al lado del otro. En dispositivos móviles, nos gustaría cambiar entre estos dos fragmentos con solo presionar un botón. La disposición móvil se ve algo como esto:Intercambiando fragmentos en una sola actividad?
<RelativeLayout>
<fragment id="container" name="fragA"/>
<ImageButton onClick="swapFragments" />
</RelativeLayout>
En el método de la actividad swapFragments(View)
, Estoy intentando utilizar el FragmentManager
para reemplazar fragA
con fragB
:
FragmentManager fragmentManager = getSupportFragmentManager();
FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
fragmentTransaction.replace(R.id.container, new FragB());
fragmentTransaction.commit();
... pero siempre puedo ver fragA
a través de las partes transparentes de fragB
, lo que me lleva a creer que solo está poniendo fragB
en la parte superior de fragA
, no reemplazándolo.
Estoy empezando por la ruta de usar hide(Fragment)
y métodos similares en la transacción, pero esa no parece ser la forma correcta de hacerlo.
¿Algún consejo sobre cómo intercambiar estos fragmentos de la manera correcta?
Editar: Vi la respuesta a this question. Esto me confunde, sin embargo, ya que necesito poder especificar un diseño diferente para la tableta y el teléfono. Si tengo que agregar mediante programación fragmentos, ¿cómo puedo evitar código específico para cada diseño en la actividad (es decir
if(TABLET) {
addFragmentA();
addFragmentB();
} else {
addFragmentA();
}
¿Ha encontrado una solución a este problema? –