Android FragmentTransaction: как создать слайд с наложением и переместить существующий Fragement влево
Я пытаюсь сделать следующее. Создайте новый Фрагмент B (Меню), сдвиньте его справа, и я хочу переместить (без скрытия или замены!) Уже показанный фрагмент А влево.
Я правильно понял Транзакцию из Фрагмента B, но Фрагмент A совсем не меняет свою позицию. Похоже, мойFragmentManager
не знает, что Фрагмент A существует (Фрагмент A не добавляется динамически, он определен в 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();
Фрагмент А существует вFragementManager
и я могу это скрыть, но это не моя цель
Fragment fragmentA = fragmentManager.findFragmentById(R.id.map_screen);
ft.hide(fragmentA); //hide FragmentA
Что я делаю неправильно?
Некоторые заметки:
Я использую библиотеки поддержки (android.support.v4.app.FragmentManager ..), но тестирую по API 17Как упоминалось ранее, я не объявлял FragmentA специально дляFragmentManager
(попробовал, но он говорит, что фрагмент уже существует)Фрагмент А - это (как вы можете видеть в XML) карта Google из классаSupportMapFragment
XML анимации работает, поэтому я не опубликовал его