主视图优化
This commit is contained in:
@@ -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()
|
||||
|
||||
@@ -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
|
||||
) {
|
||||
|
||||
@@ -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(
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user