update:new post

This commit is contained in:
2024-07-15 10:30:56 +08:00
parent 92ff2080d2
commit 204c6333c4
5 changed files with 256 additions and 70 deletions

View File

@@ -77,11 +77,13 @@ fun NavigationController(navController: NavHostController) {
fadeOut(animationSpec = tween(0))
}) {
// 带底部导航栏的路由:
listOf(NavigationItem.Home,
NavigationItem.Street,
NavigationItem.Add,
NavigationItem.Message,
NavigationItem.Profile).forEach { item ->
listOf(
NavigationItem.Home,
NavigationItem.Street,
NavigationItem.Add,
NavigationItem.Message,
NavigationItem.Profile
).forEach { item ->
composable(route = item.route) {
ScaffoldWithNavigationBar(navController) {
when (item) {
@@ -98,65 +100,72 @@ fun NavigationController(navController: NavHostController) {
composable(route = "ProfileTimeline") {
GalleryPage()
}
composable(route="LocationDetail") {
composable(route = "LocationDetail") {
Box(
modifier = Modifier.padding(bottom = navigationBarHeight)
) {
LocationDetail()
}
}
composable(route="OfficialPhoto") {
composable(route = "OfficialPhoto") {
Box(
modifier = Modifier.padding(bottom = navigationBarHeight)
) {
OfficialGalleryPage()
}
}
composable(route="OfficialPhotographer") {
composable(route = "OfficialPhotographer") {
OfficialPhotographer()
}
composable(route="Post") {
composable(route = "Post") {
Box(
modifier = Modifier.padding(bottom = navigationBarHeight)
) {
PostPage()
}
}
composable(route="ModificationList") {
composable(route = "ModificationList") {
Box(
modifier = Modifier.padding(bottom = navigationBarHeight)
) {
ModificationListScreen()
}
}
composable(route="MyMessage") {
composable(route = "MyMessage") {
Box(
modifier = Modifier.padding(bottom = navigationBarHeight)
) {
NotificationsScreen()
}
}
composable(route="Comments") {
composable(route = "Comments") {
Box(
modifier = Modifier.padding(navigationBarHeight)
) {
CommentsScreen()
}
}
composable(route="Likes") {
composable(route = "Likes") {
Box(
modifier = Modifier.padding(navigationBarHeight)
) {
LikePage()
}
}
composable(route="Followers") {
composable(route = "Followers") {
Box(
modifier = Modifier.padding(navigationBarHeight)
) {
FollowerPage()
}
}
composable(route = "NewPost") {
Box(
modifier = Modifier.padding(navigationBarHeight, top = 64.dp)
) {
NewPostScreen()
}
}
}
}
@@ -188,61 +197,63 @@ fun ScaffoldWithNavigationBar(
)
Scaffold(
modifier = Modifier.statusBarsPadding(),
bottomBar = { NavigationBar(
modifier = Modifier.height(56.dp + navigationBarHeight),
containerColor = Color.Black
) {
val navBackStackEntry by navController.currentBackStackEntryAsState()
val currentRoute = navBackStackEntry?.destination?.route
val systemUiController = rememberSystemUiController()
item.forEach { it ->
NavigationBarItem(
selected = currentRoute == it.route,
onClick = {
if (currentRoute != it.route) {
navController.navigate(it.route)
bottomBar = {
NavigationBar(
modifier = Modifier.height(56.dp + navigationBarHeight),
containerColor = Color.Black
) {
val navBackStackEntry by navController.currentBackStackEntryAsState()
val currentRoute = navBackStackEntry?.destination?.route
val systemUiController = rememberSystemUiController()
item.forEach { it ->
NavigationBarItem(
selected = currentRoute == it.route,
onClick = {
if (currentRoute != it.route) {
navController.navigate(it.route)
}
when (it.route) {
NavigationItem.Add.route -> {
systemUiController.setSystemBarsColor(
color = Color.Black
)
}
NavigationItem.Message.route -> {
systemUiController.setSystemBarsColor(
color = Color.Black
)
}
else -> {
systemUiController.setSystemBarsColor(
color = Color.Transparent
)
}
}
},
colors = NavigationBarItemColors(
selectedIconColor = Color.Red,
selectedTextColor = Color.Red,
selectedIndicatorColor = Color.Black,
unselectedIconColor = Color.Red,
unselectedTextColor = Color.Red,
disabledIconColor = Color.Red,
disabledTextColor = Color.Red,
),
icon = {
Icon(
modifier = Modifier.size(24.dp),
imageVector = it.icon(), contentDescription = null,
tint = if (currentRoute == it.route) Color.Red else Color.White
)
}
when (it.route) {
NavigationItem.Add.route -> {
systemUiController.setSystemBarsColor(
color = Color.Black
)
}
)
}
NavigationItem.Message.route -> {
systemUiController.setSystemBarsColor(
color = Color.Black
)
}
else -> {
systemUiController.setSystemBarsColor(
color = Color.Transparent
)
}
}
},
colors = NavigationBarItemColors(
selectedIconColor = Color.Red,
selectedTextColor = Color.Red,
selectedIndicatorColor = Color.Black,
unselectedIconColor = Color.Red,
unselectedTextColor = Color.Red,
disabledIconColor = Color.Red,
disabledTextColor = Color.Red,
),
icon = {
Icon(
modifier = Modifier.size(24.dp),
imageVector = it.icon(), contentDescription = null,
tint = if (currentRoute == it.route) Color.Red else Color.White
)
}
)
}
} }
}
) { innerPadding ->
Box(
modifier = Modifier.padding(innerPadding)