Fix navigation crashes, add transitions

This commit is contained in:
Astatin3
2024-07-28 09:28:00 -06:00
parent f9810139f0
commit b4cae9f610
16 changed files with 181 additions and 68 deletions
@@ -1,6 +1,7 @@
package com.astatin3.scoutingapp2025;
import android.os.Bundle;
import android.view.MenuItem;
import com.astatin3.scoutingapp2025.scoutingData.fields;
import com.astatin3.scoutingapp2025.utility.SentimentAnalysis;
@@ -11,8 +12,11 @@ import com.google.android.material.bottomnavigation.BottomNavigationView;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.appcompat.app.AppCompatActivity;
import androidx.navigation.AnimBuilder;
import androidx.navigation.NavController;
import androidx.navigation.NavDestination;
import androidx.navigation.NavOptions;
import androidx.navigation.NavOptionsBuilder;
import androidx.navigation.Navigation;
import androidx.navigation.ui.AppBarConfiguration;
import androidx.navigation.ui.NavigationUI;
@@ -20,9 +24,13 @@ import androidx.navigation.ui.NavigationUI;
import com.astatin3.scoutingapp2025.databinding.ActivityMainBinding;
import com.astatin3.scoutingapp2025.SettingsVersionStack.latestSettings;
import com.google.android.material.navigation.NavigationBarView;
import java.util.Objects;
import kotlin.Unit;
import kotlin.jvm.functions.Function1;
public class MainActivity extends AppCompatActivity {
@@ -96,15 +104,36 @@ public class MainActivity extends AppCompatActivity {
R.id.navigation_settings)
.build();
// appBarConfiguration.set
navController = Navigation.findNavController(this, R.id.nav_host_fragment_activity_main);
NavigationUI.setupActionBarWithNavController(this, navController, appBarConfiguration);
NavigationUI.setupWithNavController(navView, navController);
navView.setOnItemSelectedListener(new NavigationBarView.OnItemSelectedListener() {
@Override
public boolean onNavigationItemSelected(@NonNull MenuItem item) {
clearBackStack();
navController.navigate(item.getItemId(), savedInstanceState, new NavOptions.Builder()
.setEnterAnim(R.anim.enter_anim)
.setExitAnim(R.anim.exit_anim)
.setPopEnterAnim(R.anim.pop_enter_anim)
.setPopExitAnim(R.anim.pop_exit_anim).build()
);
return true;
}
});
}
@Override
public boolean onSupportNavigateUp() {
return navController.navigateUp() || super.onSupportNavigateUp();
}
private void clearBackStack() {
navController.popBackStack(navController.getGraph().getStartDestinationId(), false);
}
}