Android FragmentTransaction: So generieren Sie ein Overlay-Slide-In und verschieben das vorhandene Fragement nach links
Ich versuche folgendes zu tun. Erstellen Sie ein neues Fragment B (Menü), schieben Sie es von rechts hinein und ich möchte das bereits gezeigte Fragment A nach links verschieben (nicht verstecken oder ersetzen!).
Ich habe die Transaktion von Fragment B richtig ausgeführt, aber Fragment A ändert seine Position überhaupt nicht. Scheint so, meinFragmentManager
weiß nicht, dass Fragment A existiert (Fragment A wird nicht dynamisch hinzugefügt, es ist in XML definiert).
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();
Fragment A existiert in derFragementManager
und ich kann es verstecken, aber das ist nicht mein Ziel
Fragment fragmentA = fragmentManager.findFragmentById(R.id.map_screen);
ft.hide(fragmentA); //hide FragmentA
Was mache ich falsch?
Einige Notizen:
Ich verwende die Support-Bibliotheken (android.support.v4.app.FragmentManager ..), teste aber auf API 17Wie bereits erwähnt, habe ich FragmentA nicht speziell für das deklariertFragmentManager
(versuchte es, aber es heißt, Fragment existiert bereits)Fragment A ist (wie Sie in XML sehen können) eine Google Map aus der KlasseSupportMapFragment
Das Animations-XML funktioniert, deshalb habe ich es nicht gepostet