相关疑难解决方法(0)

FragmentManager:在动画类中找不到名称为mListener的字段

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)

android android-fragments

9
推荐指数
1
解决办法
1362
查看次数

标签 统计

android ×1

android-fragments ×1