@Override public void onBackStackChanged() { FragmentManager fm = getSupportFragmentManager(); Fragment current = fm.findFragmentById(R.id.content_view); if (current == null) { // no more fragments in the stack. finish. finish(); return; } Page page = Page.forName(current); binding.navView.setCheckedItem(page.getMenuId()); binding.toolbar.setTitle(page.getTitleResId()); toggleToolbarElevation(page.shouldToggleToolbar()); if (current instanceof StackedPageListener) { StackedPageListener l = (StackedPageListener) current; l.onTop(); } }