Cicero
06/25/2021, 4:55 PMclass MainActivity : AppCompatActivity() {
lateinit var bottomNavView: BottomNavigationView
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
// later probably in Application class
setContentView(R.layout.activity_main)
setupBottomNavigation()
}
private fun setupBottomNavigation() {
val navController = findNavController(R.id.fragment_navigation_host)
val navGraph = navController.navInflater.inflate(R.navigation.bottom_navigation_graph)
bottomNavView = findViewById(R.id.bottom_navigation_view)
bottomNavView.setupWithNavController(navController)
// Pass the IDs of top-level destinations to AppBarConfiguration to hide back button in the main screens
val appBarConfiguration = AppBarConfiguration(
topLevelDestinationIds = setOf(
R.id.fragment1,
R.id.fragment2,
R.id.fragment3,
R.id.fragment4
)
)
navController.addOnDestinationChangedListener { _, destination, _ ->
var showNavigationElements = true
var screenOrientation = ActivityInfo.SCREEN_ORIENTATION_PORTRAIT
when (destination.id) {
R.id.fragment6 -> {
showNavigationElements = false
}
R.id.fragment2 -> {
if (navGraph.startDestination != R.id.fragment2) {
navGraph.startDestination = R.id.fragment2
navController.graph = navGraph
}
}
R.id.fragment5 -> {
showNavigationElements = false
screenOrientation = ActivityInfo.SCREEN_ORIENTATION_FULL_SENSOR
}
}
showNavigationUiElements(showNavigationElements)
requestedOrientation = screenOrientation
}
}
private fun showNavigationUiElements(shouldShow: Boolean) {
if (shouldShow) {
bottomNavView.visibility = View.VISIBLE
supportActionBar?.show()
} else {
bottomNavView.visibility = View.GONE
supportActionBar?.hide()
}
}
}
class Fragment12 : BaseFragment() {
private val args: ModuleOverviewFragmentArgs by navArgs()
override fun onCreateView(
inflater: LayoutInflater,
container: ViewGroup?,
savedInstanceState: Bundle?
): View {
(requireActivity() as AppCompatActivity).supportActionBar?.hide()
return ComposeView(requireContext()).apply {
setContent {
12Navigation(
externalNavigation = findNavController(),
)
}
}
}
}
@Composable
fun 12Navigation(
externalNavigation: NavController
) {
val navHostController = NavigationHostController()
AppTheme {
NavHost(
navController = navHostController,
startDestination = "startingDest"
) {
composable("startingDest") {
12Introduction(externalNavigation)
}
}
}
}
Ian Lake
06/25/2021, 5:36 PMCicero
06/25/2021, 5:42 PMIan Lake
06/25/2021, 6:30 PMCicero
06/26/2021, 10:05 AM