Change theme
Help
Press space for more information.
Show links for this issue (Shortcut: i, l)
Copy issue ID
Previous Issue (Shortcut: k)
Next Issue (Shortcut: j)
Sign in to use full features.
Vote: I am impacted
Notification menu
Refresh (Shortcut: Shift+r)
Go home (Shortcut: u)
Pending code changes (auto-populated)
View issue level access limits(Press Alt + Right arrow for more information)
Unintended behavior
View staffing
Description
Version used: 1.0.0-alpha05
Devices/Android versions reproduced on:
While navigating from a fragment to another, both containing different Toolbars, that are being setup using NavigationUI.setupWithNavController(toolbar, navController, navigationDrawer) the fragments are being leaked because the implementation just adds new ToolbarOnNavigatedListener which retains the toolbar instance from the fragments but it isn't removed next time a different toolbar is setup. Also, there is no way to remove this listeners manually because they are not returned at setup time.
public static void setupWithNavController(@NonNull Toolbar toolbar,
@NonNull final NavController navController,
@Nullable final DrawerLayout drawerLayout) {
navController.addOnNavigatedListener(
new ToolbarOnNavigatedListener(toolbar, drawerLayout));
toolbar.setNavigationOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
navigateUp(drawerLayout, navController);
}
});
}