主视图优化

This commit is contained in:
2025-10-20 22:54:19 +08:00
parent 5f07605a06
commit 1ac177be8b
4 changed files with 23 additions and 8 deletions

View File

@@ -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()

View File

@@ -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
) {

View File

@@ -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(

View File

@@ -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