-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathNavBar.kt
71 lines (65 loc) · 2.42 KB
/
NavBar.kt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
package dev.fredag.cheerwithme
import android.util.Log
import androidx.compose.foundation.layout.Arrangement
import androidx.compose.foundation.layout.Column
import androidx.compose.foundation.layout.Row
import androidx.compose.foundation.layout.fillMaxWidth
import androidx.compose.material.*
import androidx.compose.runtime.Composable
import androidx.compose.ui.Modifier
import androidx.compose.ui.graphics.Color
import androidx.compose.ui.graphics.painter.Painter
import androidx.compose.ui.res.painterResource
import androidx.compose.ui.unit.dp
import androidx.navigation.NavHostController
import androidx.navigation.compose.currentBackStackEntryAsState
@Composable
fun NavBar(navController: NavHostController) {
Column(verticalArrangement = Arrangement.Bottom) {
Row(modifier = Modifier.fillMaxWidth(), horizontalArrangement = Arrangement.SpaceEvenly) {
NavButton(
painterResource(R.drawable.ic_beer_black_24dp),
AuthenticatedScreen.Checkin,
navController
)
NavButton(
painterResource(R.drawable.ic_map_black_24dp),
AuthenticatedScreen.Map,
navController
)
NavButton(
painterResource(R.drawable.ic_calendar_black_24dp),
AuthenticatedScreen.Happenings,
navController
)
NavButton(
painterResource(R.drawable.ic_people_black_24dp),
AuthenticatedScreen.Friends,
navController
)
NavButton(
painterResource(R.drawable.ic_profile_black_24dp),
AuthenticatedScreen.Profile,
navController
)
}
Divider(color = Color.Gray, thickness = 1.dp)
}
}
@Composable
fun NavButton(
painter: Painter,
targetRoute: AuthenticatedScreen,
navController: NavHostController
) {
val isActive = targetRoute.route == navController.currentBackStackEntry?.destination?.route
Button(
onClick = { navController.navigate(targetRoute.route) },
colors = ButtonDefaults.buttonColors(
backgroundColor = MaterialTheme.colors.background,
contentColor = if (isActive) MaterialTheme.colors.onSecondary else MaterialTheme.colors.onBackground
)
) {
Icon(painter = painter, contentDescription = targetRoute.route, modifier = Modifier)
}
}