
My current plan once attach/detach is deprecated is to instead use add/remove and use SavedState with ViewModels so that even if the fragments and their ViewModels are destroyed, I have some state to restore afterwards.

This means that each fragment's viewmodels stay alive because the fragments aren't destroyed. The active fragment is swapped when the user selects a bottom navigation destination by detaching the current fragment and then attaching the target fragment. I'm using attach/detach to maintain the state of of a few fragments that is displayed one at a time. Just trying to start some constructive discussion here. (CATCHED)( 6664): at .ZygoteInit.main(ZygoteInit.I'm curious to know what everyone else is using attach/detach for and how you plan to reimplement it after it's deprecated. (CATCHED)( 6664): at .invoke(Native Method) (CATCHED)( 6664): at android.os.Looper.loop(Looper.java:148) (CATCHED)( 6664): at android.os.Handler.dispatchMessage(Handler.java:95) (CATCHED)( 6664): at android.os.Handler.handleCallback(Handler.java:739) (CATCHED)( 6664): at md.$1.onClick(SelectAgentMainFragment.java:114) (CATCHED)( 6664): at md.access$000(SelectAgentMainFragment.java:54) (CATCHED)( 6664): at md.reloadAgents(SelectAgentMainFragment.java:553) (CATCHED)( 6664): at md.removeViewPager(SelectAgentMainFragment.java:460) (CATCHED)( 6664): at .finishUpdate(FragmentPagerAdapter.java:230) (CATCHED)( 6664): at .commitNowAllowingStateLoss(BackStackRecord.java:299) (CATCHED)( 6664): at .execSingleAction(FragmentManagerImpl.java:1686) (CATCHED)( 6664): at .removeRedundantOperationsAndExecute(FragmentManagerImpl.java:1811) (CATCHED)( 6664): at .executeOpsTogether(FragmentManagerImpl.java:1856) (CATCHED)( 6664): at .executeOps(FragmentManagerImpl.java:2066) (CATCHED)( 6664): at .executeOps(BackStackRecord.java:434) (CATCHED)( 6664): at .moveFragmentToExpectedState(FragmentManagerImpl.java:1228) (CATCHED)( 6664): at .moveToState(FragmentManagerImpl.java:947) (CATCHED)( 6664): at .performDestroyView(Fragment.java:2852) (CATCHED)( 6664): at (AgentsFragmentMapTab.java:356) (CATCHED)( 6664): at .remove(BackStackRecord.java:188) Public class AgentsFragmentMapTab extends is already attached to a FragmentManager. Implementation "org.androidannotations:androidannotations-api:$AAVersion" Implementation 'edu.vt.middleware:vt-password:3.1.2' Implementation 'com.nineoldandroids:library:2.4.0'

Implementation 'commons-io:commons-io:2.6' Implementation fileTree(dir: 'libs', include: )

在app / adle中: def AAVersion = '4.6.0'ĪnnotationProcessor "org.androidannotations:androidannotations:$AAVersion"
