Intereting Posts
Gridview multiline Textview отключен Переход на главный экран программно Каков синтаксис для написания комментариев в файле build.gradle? Верхние и нижние разделители не отображаются в списке Android Android: ScrollView в вертикальном LinearLayout Android: какой самый быстрый способ загрузить несколько растровых изображений / больших пальцев через http? НЕОПРЕДЕЛЕННОЕ ТОП-УРОВЕННОЕ ИСКЛЮЧЕНИЕ: com.android.dex.DexException: несколько файлов dex определяют Получение данных из Android Play Store Есть ли обратный вызов, когда RecyclerView закончил показ своих элементов после того, как я установил его с помощью адаптера? Xamarin.Forms untappable ListView (удаляет эффект пульсации выбора) Где установлен пакет приложений для Android на телефоне В чем разница, когда я создаю объект Android WebView с помощью ContextWrapper и контекста? Как добавить APN в Android (KitKat и выше) программно Разница между View и ViewGroup в Android Несколько файлов dex определяют <мой пакет> / BuildConfig, не могут найти причину:

Библиотека поддержки: анимация FragmentTransaction не работает

Я использую библиотеку поддержки android-support-v4-googlemaps от Peter Doyle для реализации Activity, которая использует как фрагменты, так и Карты Google, и не может заставить анимацию FragmentTransaction работать. Я пробовал использовать метод setCustomAnimations(int enter, int exit) а также метод setTransition(int transit) но безрезультатно. Кому-нибудь удалось заставить анимацию работать, а также проблемы с анимацией?

Некоторые из анимаций, которые я пробовал:

 setTransition(FragmentTransaction.TRANSIT_FRAGMENT_FADE) setCustomAnimations(android.R.anim.fade_in, android.R.anim.fade_out) setCustomAnimations(android.R.anim.slide_in_left, android.R.anim.slide_out_right) 

Solutions Collecting From Web of "Библиотека поддержки: анимация FragmentTransaction не работает"

Вы должны вызвать FragmentTransaction. SetCustomAnimations сначала, а затем вызвать FragmentTransaction. Замените метод следующим образом:

  FragmentTransaction ft = getActivity().getSupportFragmentManager().beginTransaction(); ft.setCustomAnimations(R.anim.fade_out,R.anim.fade_in); ft.replace(R.id.fragmentDetails, detailsFrag); 

Вы пробовали FragmentTransaction.remove (), а затем FragmentTransaction.add () вместо FragmentTransaction.replace () ? Я видел в других потоках жалобы о том, что replace() работает не так, как ожидалось.

Я не использовал библиотеку android-support-v4-googlemaps , но я могу подтвердить, что приведенный ниже код работает с android-support-v4.jar :

 FragmentTransaction tx = getSupportFragmentManager().beginTransaction(); tx.setCustomAnimations(android.R.anim.slide_in_left, android.R.anim.slide_out_right); tx.replace(R.id.fragment_container, new Fragment2()); tx.addToBackStack(null); tx.commit(); 

Попробуйте сделать снимок вашей карты google:

 private void snapShot() { SnapshotReadyCallback callback = new SnapshotReadyCallback() { Bitmap bitmap; @Override public void onSnapshotReady(Bitmap snapshot) { // TODO Auto-generated method stub bitmap = snapshot; try { FileOutputStream out = new FileOutputStream(getActivity() .getFilesDir() + "/MapSnapshot.png"); bitmap.compress(Bitmap.CompressFormat.PNG, 100, out); } catch (Exception e) { e.printStackTrace(); } } }; map.snapshot(callback); } 

Сделайте новый фрагмент, который имеет только изображение карты. Загрузите этот новый фрагмент с заменой, а затем выполните переход на фрагмент, который вы хотите заменить: final SnapShotFragment snapFrag = new SnapShotFragment (); FragmentTransaction transaction = getFragmentManager () .beginTransaction ();

  transaction.replace(MapFragment.this.getId(), snapFrag); transaction.addToBackStack(null); transaction.commit(); getFragmentManager().executePendingTransactions(); final boolean roi = isInROI; WayPointDetailActivity waypointFrag = new WayPointDetailActivity(); waypointFrag.setWayPointId(wp.getId()); waypointFrag.setInRoi(roi); transaction = getFragmentManager() .beginTransaction(); transaction.setCustomAnimations(R.anim.enter, R.anim.exit); transaction.replace(snapFrag.getId(), waypointFrag); transaction.addToBackStack(null); transaction.commit();