@@ -10,12 +10,13 @@ import androidx.compose.material.icons.filled.AccountCircle
1010import androidx.compose.material.icons.filled.Home
1111import androidx.compose.material.icons.filled.Search
1212import androidx.compose.material.icons.filled.ShoppingCart
13- import androidx.compose.material3.BottomAppBar
1413import androidx.compose.material3.CenterAlignedTopAppBar
1514import androidx.compose.material3.ExperimentalMaterial3Api
1615import androidx.compose.material3.Icon
1716import androidx.compose.material3.IconButton
1817import androidx.compose.material3.MaterialTheme
18+ import androidx.compose.material3.NavigationBar
19+ import androidx.compose.material3.NavigationBarItem
1920import androidx.compose.material3.Scaffold
2021import androidx.compose.material3.Text
2122import androidx.compose.material3.TopAppBarDefaults
@@ -40,17 +41,18 @@ fun HomeScreen(viewModel: HomeViewModel, navActions: NavActions) {
4041 navActions.toSearch()
4142 }
4243 }, bottomBar = {
43- HomeBottomBar { index ->
44+ HomeBottomBar (pagerState.currentPage) {
4445 localScope.launch {
45- pagerState.scrollToPage(index )
46+ pagerState.scrollToPage(it )
4647 }
4748 }
4849 }) { paddingValues ->
4950 HorizontalPager (
5051 state = pagerState, modifier = Modifier
5152 .padding(paddingValues)
5253 .fillMaxSize(),
53- beyondBoundsPageCount = pagerState.pageCount
54+ beyondBoundsPageCount = pagerState.pageCount,
55+ userScrollEnabled = false
5456 ) { currentPagerNum ->
5557 when (currentPagerNum) {
5658 0 -> HomeIndexPage (
@@ -73,14 +75,18 @@ fun HomeScreen(viewModel: HomeViewModel, navActions: NavActions) {
7375}
7476
7577@Composable
76- fun HomeBottomBar (onItemClick : (Int ) -> Unit ) {
77- BottomAppBar (containerColor = MaterialTheme .colorScheme.secondaryContainer) {
78+ fun HomeBottomBar (selectedIndex : Int , onItemClick : (Int ) -> Unit ) {
79+ NavigationBar {
7880 arrayOf(
7981 Icons .Default .Home , Icons .Default .ShoppingCart , Icons .Default .AccountCircle
8082 ).forEachIndexed { index, icon ->
81- IconButton (modifier = Modifier .weight(1f ), onClick = { onItemClick(index) }) {
82- Icon (icon, null )
83- }
83+ NavigationBarItem (
84+ selected = selectedIndex == index,
85+ onClick = { onItemClick(index) },
86+ icon = { Icon (imageVector = icon, contentDescription = null ) },
87+ label = { Text (text = " label" ) },
88+ alwaysShowLabel = true
89+ )
8490 }
8591 }
8692}
0 commit comments