Android FragmentTransaction: so erstellen Sie ein overlay-Folie und verschieben Sie vorhandene Fragement nach Links
Ich versuche zu tun, die folgenden. Erstellen Sie eine neue Fragement B (Menu), und schieben Sie es in von der rechten Seite, und ich möchte, sich zu bewegen (kein ausblenden oder ersetzen!) die bereits gezeigte Fragment Eines auf der linken Seite.
Bekam ich die Transaktion von Fragment B Recht, aber Fragment Einer nicht ändert seine position. Scheint, wie meine FragmentManager
nicht wissen, dass Ein Fragment vorhanden ist (Fragment A ist 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 der FragementManager
und ich kann es ausblenden, aber das ist nicht mein Ziel
Fragment fragmentA = fragmentManager.findFragmentById(R.id.map_screen);
ft.hide(fragmentA); //hide FragmentA
Was mache ich falsch?
Einige Hinweise:
- Ich bin über das Support-Libaries (android.Unterstützung.v4.app.FragmentManager..), aber das testen auf API-17
- Wie bereits erwähnt, wusste ich nicht erklären FragmentA speziell auf die
FragmentManager
(versuchten so, aber es sagt Fragment bereits vorhanden ist) - Fragment A ist (wie in XML) eine google map aus der Klasse
SupportMapFragment
- Die animation XML arbeitet, das ist, warum ich nicht posten es
- Ich bin gerade dabei, archivieren Sie die gleiche Sache wie Sie, aber ich nicht vollständig verstehen Ihre Lösung. Meine B-fragment springt immer um den Bildschirm zu füllen, nachdem die animation fertig. Irgendwelche Tipps?
InformationsquelleAutor longi | 2013-04-18
Schreibe einen Kommentar Antworten abbrechen
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich bin mir nicht sicher, ob dies ist genau das, was du suchst, aber schauen Sie sich diese Schiebe-Menü Bibliothek... es ermöglicht die Folie in einem fragment aus der linken oder rechten Seite, während die Verlagerung der Zentrum-content-fragments.
Lösung:
Erstellen Relative Layout mit überlappenden Fragmente:
und rufen Sie einfach
.translationX(-1 * mScreenWidth)
(mScreenWidth ist mein "ScreenWidth" minus die Lücke, die Sie wollen).