Fixed
Status Update
Comments
il...@google.com <il...@google.com>
ap...@google.com <ap...@google.com> #2
Hi. Thanks for reporting this. Fixed in alpha-04
jb...@google.com <jb...@google.com> #3
Project: platform/frameworks/support
Branch: androidx-main
commit e782987543a9f8ccd485e970ddc74564b24378db
Author: Vighnesh Raut <vighnesh.raut13@gmail.com>
Date: Mon Jan 02 15:27:40 2023
fix: tab row crashes when only 1 tab is added
Bug: b/264018028
Test: Added unit test
Change-Id: I6381dbac304fc1d69d3708c6655f8b595668e93f
M tv/tv-material/src/androidTest/java/androidx/tv/material/TabRowTest.kt
M tv/tv-material/src/main/java/androidx/tv/material/TabRow.kt
https://android-review.googlesource.com/2373449
Branch: androidx-main
commit e782987543a9f8ccd485e970ddc74564b24378db
Author: Vighnesh Raut <vighnesh.raut13@gmail.com>
Date: Mon Jan 02 15:27:40 2023
fix: tab row crashes when only 1 tab is added
Bug:
Test: Added unit test
Change-Id: I6381dbac304fc1d69d3708c6655f8b595668e93f
M tv/tv-material/src/androidTest/java/androidx/tv/material/TabRowTest.kt
M tv/tv-material/src/main/java/androidx/tv/material/TabRow.kt
na...@google.com <na...@google.com> #4
deleted
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