У меня есть два фрагмента & Б.
Я перешли на B из A, используя следующий код:экран замерзает при popBackStack() называется
FragmentManager fragmentManager;
FragmentTransaction transaction;
fragmentManager = getActivity().getFragmentManager();
transaction = fragmentManager.beginTransaction();
transaction.setCustomAnimations(R.animator.enter_anim, R.animator.exit_anim,R.animator.popenter, R.animator.popexit);
transaction.replace(R.id.fragmentLayout, new B())
.addToBackStack("tag").commit();
В содержит SQLite операции (SugarORM).
При переключении с A на B экран замерзает, даже если я использую AsyncTask
& IntentService
для операций db.
Кроме того, когда я нажимаю кнопку [getFragmentManager().popBackStack();
], экран зависает в течение нескольких секунд, прежде чем он переключится обратно на A с B. popBackStack
анимация слишком не видна.
Я попытался показать неопределенный индикатор выполнения & анимационный список в представлении изображения, но они тоже замораживаются & похоже, что это статические изображения.
проверьте, имеет ли ваш FRAGMENT A какие-либо блокировки блокировки ui в onCreateView/onViewCreated. –
опубликуйте свой AsyncTask. и вы можете видеть анимацию за счет увеличения задержки. – Nepster
записывает журналы всех ваших методов в оба фрагмента, и вы можете узнать, проверив журналы, в течение которых два процесса (между которыми 2 журнала) так долго занимаются, и вы можете исправить причину (особенно в onResume или в onPause). Если возможно вставьте код. –