Android FragmentTransaction: cómo generar una diapositiva de superposición y mover el control existente a la izquierda
Estoy tratando de hacer lo siguiente. Cree un nuevo Fragement B (Menú), deslícelo desde la derecha y quiero mover (¡no ocultar ni reemplazar!) El Fragmento A que ya se muestra a la izquierda.
Tengo la Transacción del Fragmento B a la derecha, pero el Fragmento A no cambia su posición en absoluto. Parece que, miFragmentManager
no sabe que existe el Fragmento A (el Fragmento A no se agrega dinámicamente, se define en XML).
main_screen_layout-xml
<RelativeLayout //...
android:id="@+id/main_screen"
tools:context=".MainActivity"
<fragment
android:id="@+id/map_screen"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
class="com.google.android.gms.maps.SupportMapFragment" >
</fragment>
FragmentTransaction
FragmentManager fragmentManager = getSupportFragmentManager();
FragmentTransaction ft = fragmentManager.beginTransaction();
ft.add(R.id.main_screen, new MenuFragment(), MENU_FRAGMENT); //adding Fragment B
ft.setCustomAnimations(R.anim.slide_in_right, R.anim.slide_out_left_cut);
ft.addToBackStack(null);
ft.commit();
Fragmento A existe en elFragementManager
Y puedo ocultarlo, pero ese no es mi objetivo.
Fragment fragmentA = fragmentManager.findFragmentById(R.id.map_screen);
ft.hide(fragmentA); //hide FragmentA
¿Qué estoy haciendo mal?
Algunas notas:
Estoy usando las bibliotecas de soporte (android.support.v4.app.FragmentManager ...), pero las pruebas en la API 17Como se mencionó anteriormente, no declaré FragmentA específicamente a laFragmentManager
(intentado así, pero dice que ya existe un fragmento)El fragmento A es (como se puede ver en XML) un mapa de Google de la claseSupportMapFragment
La animación XML está funcionando, por eso no la publiqué.