Fragment从拆卸(移除)a时出现错误FragmentManager。
拆卸:
public void onFragmentDetached(String tag) {
FragmentManager fragmentManager = getSupportFragmentManager();
Fragment fragment = fragmentManager.findFragmentByTag(tag);
if (fragment != null) {
fragmentManager
.beginTransaction()
.disallowAddToBackStack()
.setCustomAnimations(R.anim.slide_left, R.anim.slide_right)
.remove(fragment)
.commitNow();
unlockDrawer();
}
}
Run Code Online (Sandbox Code Playgroud)
附:
getSupportFragmentManager()
.beginTransaction()
.disallowAddToBackStack()
.setCustomAnimations(R.anim.slide_left, R.anim.slide_right)
.replace(R.id.mainRootView, settingsFragment, SettingsFragment.TAG)
.commit();
Run Code Online (Sandbox Code Playgroud)
这是我的错误:
E/FragmentManager: No field with the name mListener is found in Animation class
java.lang.NoSuchFieldException: No field mListener in class Landroid/view/animation/Animation; (declaration of 'android.view.animation.Animation' appears in /system/framework/framework.jar!classes3.dex)
at java.lang.Class.getDeclaredField(Native Method)
at androidx.fragment.app.FragmentManagerImpl.getAnimationListener(FragmentManager.java:1301)
at androidx.fragment.app.FragmentManagerImpl.animateRemoveFragment(FragmentManager.java:1638)
at androidx.fragment.app.FragmentManagerImpl.moveToState(FragmentManager.java:1548)
at androidx.fragment.app.FragmentManagerImpl.moveFragmentToExpectedState(FragmentManager.java:1784) …Run Code Online (Sandbox Code Playgroud)