Fix bottombar selected item.
This commit is contained in:
		
							parent
							
								
									747d5576ab
								
							
						
					
					
						commit
						82b6c49787
					
				
					 1 changed files with 5 additions and 12 deletions
				
			
		| 
						 | 
				
			
			@ -15,10 +15,7 @@ import androidx.compose.material3.TopAppBar
 | 
			
		|||
import androidx.compose.runtime.Composable
 | 
			
		||||
import androidx.compose.runtime.CompositionLocalProvider
 | 
			
		||||
import androidx.compose.runtime.Stable
 | 
			
		||||
import androidx.compose.runtime.derivedStateOf
 | 
			
		||||
import androidx.compose.runtime.mutableIntStateOf
 | 
			
		||||
import androidx.compose.runtime.remember
 | 
			
		||||
import androidx.compose.runtime.saveable.rememberSaveable
 | 
			
		||||
import androidx.compose.runtime.staticCompositionLocalOf
 | 
			
		||||
import androidx.compose.ui.Modifier
 | 
			
		||||
import androidx.compose.ui.res.painterResource
 | 
			
		||||
| 
						 | 
				
			
			@ -26,6 +23,7 @@ import androidx.compose.ui.res.stringResource
 | 
			
		|||
import androidx.compose.ui.unit.dp
 | 
			
		||||
import androidx.navigation.NavHostController
 | 
			
		||||
import androidx.navigation.compose.NavHost
 | 
			
		||||
import androidx.navigation.compose.currentBackStackEntryAsState
 | 
			
		||||
import androidx.navigation.compose.rememberNavController
 | 
			
		||||
import com.pixelized.rplexicon.LocalSnack
 | 
			
		||||
import com.pixelized.rplexicon.R
 | 
			
		||||
| 
						 | 
				
			
			@ -56,6 +54,8 @@ fun HomeNavHost(
 | 
			
		|||
    CompositionLocalProvider(
 | 
			
		||||
        LocalSnack provides remember { SnackbarHostState() },
 | 
			
		||||
    ) {
 | 
			
		||||
        val backStackEntry = navHostController.currentBackStackEntryAsState()
 | 
			
		||||
 | 
			
		||||
        Scaffold(
 | 
			
		||||
            topBar = {
 | 
			
		||||
                TopAppBar(
 | 
			
		||||
| 
						 | 
				
			
			@ -70,21 +70,14 @@ fun HomeNavHost(
 | 
			
		|||
                )
 | 
			
		||||
            },
 | 
			
		||||
            bottomBar = {
 | 
			
		||||
                val selectedIndex = rememberSaveable {
 | 
			
		||||
                    mutableIntStateOf(bottomBarItems.indexOfFirst { it.route == startDestination })
 | 
			
		||||
                }
 | 
			
		||||
                BottomAppBar(
 | 
			
		||||
                    containerColor = MaterialTheme.colorScheme.surface,
 | 
			
		||||
                    tonalElevation = 0.dp,
 | 
			
		||||
                ) {
 | 
			
		||||
                    bottomBarItems.forEachIndexed { index, item ->
 | 
			
		||||
                        val selectedItem = remember {
 | 
			
		||||
                            derivedStateOf { selectedIndex.value == index }
 | 
			
		||||
                        }
 | 
			
		||||
                    bottomBarItems.forEach { item ->
 | 
			
		||||
                        NavigationBarItem(
 | 
			
		||||
                            selected = selectedItem.value,
 | 
			
		||||
                            selected = item.route == backStackEntry.value?.destination?.route,
 | 
			
		||||
                            onClick = {
 | 
			
		||||
                                selectedIndex.value = index
 | 
			
		||||
                                item.onClick.invoke()
 | 
			
		||||
                            },
 | 
			
		||||
                            label = {
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue