From 0b3455c7c43b8eb0c0213279efb8f2719714f47a Mon Sep 17 00:00:00 2001 From: AllenTom Date: Tue, 16 Jul 2024 10:48:45 +0800 Subject: [PATCH] =?UTF-8?q?=E8=B0=83=E6=95=B4=E6=A0=B7=E5=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../riderpro/BottomNavigationPlaceholder.kt | 19 ++++++++++++ .../com/aiosman/riderpro/CommentsScreen.kt | 1 + .../java/com/aiosman/riderpro/LikePage.kt | 6 ++++ .../java/com/aiosman/riderpro/MainActivity.kt | 30 +++++++++++-------- .../java/com/aiosman/riderpro/MessageList.kt | 8 ++++- .../main/java/com/aiosman/riderpro/NewPost.kt | 6 ++++ .../com/aiosman/riderpro/StatusBarMask.kt | 9 +++++- 7 files changed, 65 insertions(+), 14 deletions(-) create mode 100644 app/src/main/java/com/aiosman/riderpro/BottomNavigationPlaceholder.kt diff --git a/app/src/main/java/com/aiosman/riderpro/BottomNavigationPlaceholder.kt b/app/src/main/java/com/aiosman/riderpro/BottomNavigationPlaceholder.kt new file mode 100644 index 0000000..903036d --- /dev/null +++ b/app/src/main/java/com/aiosman/riderpro/BottomNavigationPlaceholder.kt @@ -0,0 +1,19 @@ +package com.aiosman.riderpro + +import androidx.compose.foundation.layout.Box +import androidx.compose.foundation.layout.WindowInsets +import androidx.compose.foundation.layout.height +import androidx.compose.foundation.layout.navigationBars +import androidx.compose.runtime.Composable +import androidx.compose.ui.Modifier +import androidx.compose.ui.platform.LocalDensity + +@Composable +fun BottomNavigationPlaceholder(){ + val navigationBarHeight = with(LocalDensity.current) { + WindowInsets.navigationBars.getBottom(this).toDp() + } + Box( + modifier = Modifier.height(navigationBarHeight) + ) +} \ No newline at end of file diff --git a/app/src/main/java/com/aiosman/riderpro/CommentsScreen.kt b/app/src/main/java/com/aiosman/riderpro/CommentsScreen.kt index 61f98bc..5c41ba3 100644 --- a/app/src/main/java/com/aiosman/riderpro/CommentsScreen.kt +++ b/app/src/main/java/com/aiosman/riderpro/CommentsScreen.kt @@ -49,6 +49,7 @@ fun CommentsScreen() { repeat(20) { CommentsItem() } + BottomNavigationPlaceholder() } } } diff --git a/app/src/main/java/com/aiosman/riderpro/LikePage.kt b/app/src/main/java/com/aiosman/riderpro/LikePage.kt index d2afc9a..69db909 100644 --- a/app/src/main/java/com/aiosman/riderpro/LikePage.kt +++ b/app/src/main/java/com/aiosman/riderpro/LikePage.kt @@ -6,9 +6,12 @@ import androidx.compose.foundation.layout.Box import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.Row import androidx.compose.foundation.layout.Spacer +import androidx.compose.foundation.layout.WindowInsets +import androidx.compose.foundation.layout.asPaddingValues import androidx.compose.foundation.layout.fillMaxSize import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.height +import androidx.compose.foundation.layout.navigationBars import androidx.compose.foundation.layout.padding import androidx.compose.foundation.layout.size import androidx.compose.foundation.layout.width @@ -45,10 +48,13 @@ fun LikePage() { item { repeat(20) { LikeItem() + } + BottomNavigationPlaceholder() } } + } } diff --git a/app/src/main/java/com/aiosman/riderpro/MainActivity.kt b/app/src/main/java/com/aiosman/riderpro/MainActivity.kt index 567bcc8..e3d5396 100644 --- a/app/src/main/java/com/aiosman/riderpro/MainActivity.kt +++ b/app/src/main/java/com/aiosman/riderpro/MainActivity.kt @@ -135,25 +135,31 @@ fun NavigationController(navController: NavHostController) { } } composable(route = "MyMessage") { + + NotificationsScreen() + + } + composable(route = "Comments") { + + CommentsScreen() + + } + composable(route = "Likes") { + + LikePage() + + } + composable(route = "Followers") { Box( modifier = Modifier.padding(bottom = navigationBarHeight) ) { - NotificationsScreen() - } - } - composable(route = "Comments") { - CommentsScreen() - } - composable(route = "Likes") { - LikePage() - } - composable(route = "Followers") { - FollowerPage() + FollowerPage() + } } composable(route = "NewPost") { - NewPostScreen() + NewPostScreen() } composable(route = "EditModification") { diff --git a/app/src/main/java/com/aiosman/riderpro/MessageList.kt b/app/src/main/java/com/aiosman/riderpro/MessageList.kt index b14be1c..b5b46aa 100644 --- a/app/src/main/java/com/aiosman/riderpro/MessageList.kt +++ b/app/src/main/java/com/aiosman/riderpro/MessageList.kt @@ -8,9 +8,12 @@ import androidx.compose.foundation.layout.Box import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.Row import androidx.compose.foundation.layout.Spacer +import androidx.compose.foundation.layout.WindowInsets +import androidx.compose.foundation.layout.asPaddingValues import androidx.compose.foundation.layout.fillMaxSize import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.height +import androidx.compose.foundation.layout.navigationBars import androidx.compose.foundation.layout.padding import androidx.compose.foundation.layout.size import androidx.compose.foundation.layout.width @@ -23,6 +26,7 @@ import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.draw.clip import androidx.compose.ui.graphics.Color +import androidx.compose.ui.platform.LocalDensity import androidx.compose.ui.res.painterResource import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.tooling.preview.Preview @@ -36,7 +40,7 @@ fun NotificationsScreen() { val navController = LocalNavController.current StatusBarMaskLayout(darkIcons = true) { Column( - modifier = Modifier.fillMaxSize() + modifier = Modifier.fillMaxWidth().weight(1f) ) { Box( modifier = Modifier @@ -83,7 +87,9 @@ fun NotificationsScreen() { profileImage = R.drawable.default_avatar ) ) + } + BottomNavigationPlaceholder() } diff --git a/app/src/main/java/com/aiosman/riderpro/NewPost.kt b/app/src/main/java/com/aiosman/riderpro/NewPost.kt index ddafc82..88e9916 100644 --- a/app/src/main/java/com/aiosman/riderpro/NewPost.kt +++ b/app/src/main/java/com/aiosman/riderpro/NewPost.kt @@ -25,6 +25,7 @@ import androidx.compose.material3.ExperimentalMaterial3Api import androidx.compose.material3.ModalBottomSheet import androidx.compose.material3.Text import androidx.compose.runtime.Composable +import androidx.compose.runtime.LaunchedEffect import androidx.compose.runtime.getValue import androidx.compose.runtime.mutableStateOf import androidx.compose.runtime.remember @@ -41,12 +42,17 @@ import androidx.compose.ui.res.painterResource import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.dp +import com.google.accompanist.systemuicontroller.rememberSystemUiController @Preview @Composable fun NewPostScreen() { val model = NewPostViewModel + val systemUiController = rememberSystemUiController() + LaunchedEffect(Unit) { + systemUiController.setNavigationBarColor(color = Color.Transparent) + } StatusBarMaskLayout( darkIcons = true, ) { diff --git a/app/src/main/java/com/aiosman/riderpro/StatusBarMask.kt b/app/src/main/java/com/aiosman/riderpro/StatusBarMask.kt index 1f42e3c..a05fb5b 100644 --- a/app/src/main/java/com/aiosman/riderpro/StatusBarMask.kt +++ b/app/src/main/java/com/aiosman/riderpro/StatusBarMask.kt @@ -4,16 +4,21 @@ import androidx.compose.foundation.background import androidx.compose.foundation.layout.Box import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.ColumnScope +import androidx.compose.foundation.layout.ExperimentalLayoutApi import androidx.compose.foundation.layout.Spacer import androidx.compose.foundation.layout.WindowInsets +import androidx.compose.foundation.layout.areNavigationBarsVisible import androidx.compose.foundation.layout.asPaddingValues +import androidx.compose.foundation.layout.fillMaxSize import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.height +import androidx.compose.foundation.layout.navigationBars import androidx.compose.foundation.layout.systemBars import androidx.compose.runtime.Composable import androidx.compose.runtime.LaunchedEffect import androidx.compose.ui.Modifier import androidx.compose.ui.graphics.Color +import androidx.compose.ui.unit.dp import com.google.accompanist.systemuicontroller.rememberSystemUiController @Composable @@ -37,11 +42,13 @@ fun StatusBarMaskLayout( ) { val paddingValues = WindowInsets.systemBars.asPaddingValues() val systemUiController = rememberSystemUiController() + val navigationBarPaddings = + WindowInsets.navigationBars.asPaddingValues().calculateBottomPadding() LaunchedEffect(Unit) { systemUiController.setStatusBarColor(Color.Transparent, darkIcons = darkIcons) } Column( - modifier = modifier + modifier = modifier.fillMaxSize() ) { Box( modifier = Modifier