Fixed
Status Update
Comments
il...@google.com <il...@google.com>
ap...@google.com <ap...@google.com> #2
Nested scrolling works partially (as per http://b/122818889 ). Let's discuss if we need full support and if so make sure it works.
jb...@google.com <jb...@google.com> #3
Hi!
What is 'partially' exactly?
How do I see it?
Thanks!
What is 'partially' exactly?
How do I see it?
Thanks!
na...@google.com <na...@google.com> #4
As of now:
- Nesting scroll views with a scroll direction perpendicular to the ViewPager2's orientation inside ViewPager2 works
- Nesting scroll views with a scroll direction parallel to the ViewPager2's orientation inside ViewPager2 does not work
- Nesting scroll views with a scroll direction perpendicular to the ViewPager2's orientation inside ViewPager2 works
- Nesting scroll views with a scroll direction parallel to the ViewPager2's orientation inside ViewPager2 does not work
Description
Using
DynamicNavHostFragment
inandroidx.navigation:*:2.6.0-alpha05
cause an IllegalStateException when navigating.Stacktrace:
FATAL EXCEPTION: main Process: com.geekorum.rdv.bwemanje.debug, PID: 10981 java.lang.IllegalStateException: You cannot access the Navigator's state until the Navigator is attached at androidx.navigation.Navigator.getState(Navigator.kt:68) at androidx.navigation.fragment.FragmentNavigator.access$getState(FragmentNavigator.kt:53) at androidx.navigation.fragment.FragmentNavigator$1.onBackStackChangeCommitted(FragmentNavigator.kt:81) at androidx.fragment.app.FragmentManager.executeOpsTogether(FragmentManager.java:1954) at androidx.fragment.app.FragmentManager.removeRedundantOperationsAndExecute(FragmentManager.java:1841) at androidx.fragment.app.FragmentManager.execPendingActions(FragmentManager.java:1778) at androidx.fragment.app.FragmentManager$5.run(FragmentManager.java:565) at android.os.Handler.handleCallback(Handler.java:942) at android.os.Handler.dispatchMessage(Handler.java:99) at android.os.Looper.loopOnce(Looper.java:201) at android.os.Looper.loop(Looper.java:288) at android.app.ActivityThread.main(ActivityThread.java:7872) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:548) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:936)
This is caused by registering an OnBackStackChangeListener when constructing FragmentNavigator .
DynamicNavHostFragment first create a regular
FragmentNavigator
that registers his OnBackStackChangeListener. This navigator is then replaced by aDynamicFragmentNavigator
. When the graph is created the navigators are all attached except the replaced FragmentNavigator which cause the crash as its OnBackStackChangeListener is still called.To reproduce use the following layout in an activity and cause a navigation