Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- @Override
- public boolean onNavigationItemSelected(@NonNull MenuItem item) {
- FragmentTransaction ft = fm.beginTransaction();
- Fragment currentFrag = fm.findFragmentById(R.id.container);
- int id = item.getItemId();
- switch (id) {
- case R.id.trains: {
- if (currentFrag == trainListFrag) {
- ((TrainListFragment) trainListFrag).scrollToTop();
- break;
- }
- ft.replace(R.id.container, trainListFrag);
- arrangeFragmentHistory(trainListFrag);
- break;
- }
- case R.id.brands: {
- if (currentFrag == brandListFrag) {
- break;
- }
- ft.replace(R.id.container, brandListFrag);
- arrangeFragmentHistory(brandListFrag);
- break;
- }
- case R.id.categories: {
- if (currentFrag == categoryListFrag) {
- break;
- }
- ft.replace(R.id.container, categoryListFrag);
- arrangeFragmentHistory(categoryListFrag);
- break;
- }
- }
- ft.setCustomAnimations(android.R.animator.fade_in, android.R.animator.fade_out)
- .commit();
- fm.executePendingTransactions();
- onFragmentHistoryChanged();
- return true;
- }
- private void arrangeFragmentHistory(Fragment fragment) {
- fragmentHistory.removeFirstOccurrence(fragment);
- fragmentHistory.add(fragment);
- }
- private void goBackToPreviousFragment() {
- if (fragmentHistory.size() > 1) {
- fragmentHistory.removeLast();
- getSupportFragmentManager().beginTransaction()
- .replace(R.id.container, fragmentHistory.getLast())
- .setCustomAnimations(android.R.animator.fade_in, android.R.animator.fade_out)
- .commit();
- fm.executePendingTransactions();
- onFragmentHistoryChanged();
- } else {
- super.onBackPressed();
- }
- }
- private void onFragmentHistoryChanged() {
- clearFocusAndHideKeyboard();
- Fragment currentFrag = getSupportFragmentManager().findFragmentById(R.id.container);
- setMenuItemChecked(currentFrag);
- hideOrShowBottomNavigation(currentFrag);
- }
Add Comment
Please, Sign In to add comment