From 1ac177be8be7b189935cfd7702436d209fa7fec6 Mon Sep 17 00:00:00 2001 From: devttl Date: Mon, 20 Oct 2025 22:54:19 +0800 Subject: [PATCH] =?UTF-8?q?=E4=B8=BB=E8=A7=86=E5=9B=BE=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../androidMain/kotlin/com/taskttl/MainActivity.kt | 13 ++++++++++--- .../kotlin/com/taskttl/core/routes/MainNav.kt | 13 +++++++++---- .../kotlin/com/taskttl/core/ui/CustomBottom.kt | 3 ++- .../kotlin/com/taskttl/ui/components/AppHeader.kt | 2 ++ 4 files changed, 23 insertions(+), 8 deletions(-) diff --git a/composeApp/src/androidMain/kotlin/com/taskttl/MainActivity.kt b/composeApp/src/androidMain/kotlin/com/taskttl/MainActivity.kt index e452de0..677bcc7 100644 --- a/composeApp/src/androidMain/kotlin/com/taskttl/MainActivity.kt +++ b/composeApp/src/androidMain/kotlin/com/taskttl/MainActivity.kt @@ -16,18 +16,25 @@ class MainActivity : ComponentActivity() { enableEdgeToEdge() // 设置全屏显示 - WindowCompat.setDecorFitsSystemWindows(window, true) + WindowCompat.setDecorFitsSystemWindows(window, false) // 设置状态栏图标颜色 - val windowInsetsController = WindowInsetsControllerCompat(window, window.decorView) + val controller = WindowInsetsControllerCompat(window, window.decorView) // windowInsetsController.hide(WindowInsetsCompat.Type.statusBars() or WindowInsetsCompat.Type.navigationBars()) // windowInsetsController.systemBarsBehavior = // WindowInsetsControllerCompat.BEHAVIOR_SHOW_TRANSIENT_BARS_BY_SWIPE + // 显示状态栏和导航栏 + // controller.show(WindowInsetsCompat.Type.systemBars()) + + // 设置系统栏行为:用户上滑时再显示(可选) + // controller.systemBarsBehavior = WindowInsetsControllerCompat.BEHAVIOR_DEFAULT + // 使用系统原生方法检测暗色主题 val isDarkTheme = resources.configuration.uiMode and Configuration.UI_MODE_NIGHT_MASK == Configuration.UI_MODE_NIGHT_YES - windowInsetsController.isAppearanceLightStatusBars = !isDarkTheme + controller.isAppearanceLightStatusBars = isDarkTheme + controller.isAppearanceLightNavigationBars = isDarkTheme setContent { App() diff --git a/composeApp/src/commonMain/kotlin/com/taskttl/core/routes/MainNav.kt b/composeApp/src/commonMain/kotlin/com/taskttl/core/routes/MainNav.kt index 9ad3b9c..cfd97e6 100644 --- a/composeApp/src/commonMain/kotlin/com/taskttl/core/routes/MainNav.kt +++ b/composeApp/src/commonMain/kotlin/com/taskttl/core/routes/MainNav.kt @@ -1,7 +1,9 @@ package com.taskttl.core.routes import androidx.compose.foundation.background +import androidx.compose.foundation.layout.WindowInsets import androidx.compose.foundation.layout.fillMaxSize +import androidx.compose.foundation.layout.navigationBarsPadding import androidx.compose.foundation.layout.padding import androidx.compose.material.icons.Icons import androidx.compose.material.icons.automirrored.filled.List @@ -14,6 +16,7 @@ import androidx.compose.runtime.getValue import androidx.compose.runtime.remember import androidx.compose.ui.Modifier import androidx.compose.ui.graphics.Color +import androidx.compose.ui.unit.dp import androidx.navigation.NavDestination.Companion.hasRoute import androidx.navigation.compose.NavHost import androidx.navigation.compose.composable @@ -22,12 +25,12 @@ import androidx.navigation.compose.rememberNavController import androidx.navigation.toRoute import com.taskttl.core.routes.Routes.Main import com.taskttl.core.ui.CustomBottomBar +import com.taskttl.presentation.category.CategoryEditScreen +import com.taskttl.presentation.category.CategoryScreen import com.taskttl.presentation.countdown.CountdownDetailScreen import com.taskttl.presentation.countdown.CountdownEditScreen import com.taskttl.presentation.countdown.CountdownScreen import com.taskttl.presentation.settings.AboutScreen -import com.taskttl.presentation.category.CategoryEditScreen -import com.taskttl.presentation.category.CategoryScreen import com.taskttl.presentation.settings.DataManagementScreen import com.taskttl.presentation.settings.FeedbackScreen import com.taskttl.presentation.settings.PrivacyScreen @@ -61,7 +64,8 @@ fun MainNav() { val currentDestination by mainNavController.currentBackStackEntryAsState() Scaffold( - modifier = Modifier.background(Color(0xffF9F9F9)), + modifier = Modifier.fillMaxSize().background(Color(0xffF9F9F9)), + contentWindowInsets = WindowInsets(0.dp), bottomBar = { CustomBottomBar( bottomItems = bottomItems, @@ -80,7 +84,8 @@ fun MainNav() { } ) { paddingValues -> NavHost( - modifier = Modifier.fillMaxSize().padding(paddingValues), + modifier = Modifier.fillMaxSize() + .padding(bottom = paddingValues.calculateBottomPadding()), navController = mainNavController, startDestination = Main.Task ) { diff --git a/composeApp/src/commonMain/kotlin/com/taskttl/core/ui/CustomBottom.kt b/composeApp/src/commonMain/kotlin/com/taskttl/core/ui/CustomBottom.kt index c847195..19db245 100644 --- a/composeApp/src/commonMain/kotlin/com/taskttl/core/ui/CustomBottom.kt +++ b/composeApp/src/commonMain/kotlin/com/taskttl/core/ui/CustomBottom.kt @@ -10,6 +10,7 @@ import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.Row import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.height +import androidx.compose.foundation.layout.navigationBarsPadding import androidx.compose.foundation.layout.padding import androidx.compose.foundation.layout.size import androidx.compose.material3.Icon @@ -42,7 +43,7 @@ fun CustomBottomBar( val barHeight = 56.dp Box( - modifier = Modifier.fillMaxWidth().height(barHeight) + modifier = Modifier.navigationBarsPadding().fillMaxWidth().height(barHeight) .background(MaterialTheme.colorScheme.background) ) { Row( diff --git a/composeApp/src/commonMain/kotlin/com/taskttl/ui/components/AppHeader.kt b/composeApp/src/commonMain/kotlin/com/taskttl/ui/components/AppHeader.kt index 7a54f50..e1219ea 100644 --- a/composeApp/src/commonMain/kotlin/com/taskttl/ui/components/AppHeader.kt +++ b/composeApp/src/commonMain/kotlin/com/taskttl/ui/components/AppHeader.kt @@ -6,6 +6,7 @@ import androidx.compose.foundation.layout.Arrangement import androidx.compose.foundation.layout.Row import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.padding +import androidx.compose.foundation.layout.statusBarsPadding import androidx.compose.material.icons.Icons import androidx.compose.material.icons.automirrored.filled.ArrowBack import androidx.compose.material3.Icon @@ -53,6 +54,7 @@ fun AppHeader( modifier = Modifier .fillMaxWidth() .background(brush = gradient) + .statusBarsPadding() .padding(horizontal = 20.dp, vertical = 15.dp), horizontalArrangement = Arrangement.SpaceBetween, verticalAlignment = Alignment.CenterVertically