Status Update
Comments
ha...@reddit.com <ha...@reddit.com> #2
apologies, i meant "navigate(To...)"
ma...@google.com <ma...@google.com> #3
Yep, it appears that navigateUp() returns true, even when nothing visually changes on the screen. This seems to be caused by popBackStack(), which is always returning true even when popping the root Fragment.
ry...@google.com <ry...@google.com> #4
Project: platform/frameworks/support
Branch: androidx-master-dev
commit 77f6f126b51ef6c880368ed5b4ac900c7b187165
Author: Ian Lake <ilake@google.com>
Date: Wed Feb 06 10:03:44 2019
Fix popBackStack logic when popping the root destination
popBackStack() and by extension navigateUp() should
only return true if the user was successfully navigated
to a new destination. In cases where the entire stack
was popped, the methods should return false so that
additional logic, such as finishing the activity, can
be employed.
This fixes a regression introduced in
https://issuetracker.google.com/issues/123552990
Test: updated tests
BUG: 123933201
Change-Id: I756481f14b2c7d9b8f401bea05c4dbd16d28f614
M navigation/runtime/src/androidTest/java/androidx/navigation/NavControllerTest.kt
M navigation/runtime/src/main/java/androidx/navigation/NavController.java
https://android-review.googlesource.com/896574
https://goto.google.com/android-sha1/77f6f126b51ef6c880368ed5b4ac900c7b187165
Branch: androidx-master-dev
commit 77f6f126b51ef6c880368ed5b4ac900c7b187165
Author: Ian Lake <ilake@google.com>
Date: Wed Feb 06 10:03:44 2019
Fix popBackStack logic when popping the root destination
popBackStack() and by extension navigateUp() should
only return true if the user was successfully navigated
to a new destination. In cases where the entire stack
was popped, the methods should return false so that
additional logic, such as finishing the activity, can
be employed.
This fixes a regression introduced in
Test: updated tests
BUG: 123933201
Change-Id: I756481f14b2c7d9b8f401bea05c4dbd16d28f614
M navigation/runtime/src/androidTest/java/androidx/navigation/NavControllerTest.kt
M navigation/runtime/src/main/java/androidx/navigation/NavController.java
ry...@google.com <ry...@google.com> #5
This is fixed and will be available in Navigation 1.0.0-beta02.
ha...@reddit.com <ha...@reddit.com> #6
I can confirm this is fixed in RecyclerView 1.3.1-rc01. Thanks a lot!
Description
Steps to Reproduce or Code Sample to Reproduce:
See MainActivity in attached sample project, or:
Note: RV refers to
RecyclerView
RecyclerView
RecyclerView
are emptyFrameLayout
sonBindViewHolder
of the RV adapter, createComposeView
and add it as a child to theFrameLayout
. CallsetContent
on theComposeView
with arbitrary layout (e.g. coloredBox
)notifyItemChanged(0, Any())
Behavior:
What I would expect to happen: No crash happens
What actually happens:
onBindViewHolder
call, theparent
field of theRecyclerView
item view will benull
, but itsmAttachInfo
will not benull
ComposeView
is added to the item view, itsisAttachedToWindow
will be true, and it will try to create a composition.ViewTreeLifecycleOwner
usingView.findViewTreeLifecycleOwner()
which tries walking up the view hierarchy to obtain the owner from the root view.parent
,View.findViewTreeLifecycleOwner()
returns null, andView.createLifecycleAwareWindowRecomposer()
throws and crashes the app.Stack trace (if applicable):