Browse Source

fix: system bar

main
AnranYus 1 month ago
parent
commit
e5c0e5f570
  1. 74
      composeApp/src/commonMain/kotlin/com/whitefish/app/ui/components/SystemBarsDemo.kt
  2. 4
      composeApp/src/commonMain/kotlin/com/whitefish/app/ui/components/SystemBarsPadding.kt
  3. 6
      composeApp/src/commonMain/kotlin/com/whitefish/app/ui/home/HomeScreen.kt

74
composeApp/src/commonMain/kotlin/com/whitefish/app/ui/components/SystemBarsDemo.kt

@ -1,74 +0,0 @@
package com.whitefish.app.ui.components
import androidx.compose.foundation.background
import androidx.compose.foundation.layout.*
import androidx.compose.material3.*
import androidx.compose.runtime.*
import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
import androidx.compose.ui.graphics.Color
import androidx.compose.ui.text.font.FontWeight
import androidx.compose.ui.unit.dp
import androidx.compose.ui.unit.sp
import com.whitefish.app.getStatusBarHeight
import com.whitefish.app.getNavigationBarHeight
/**
*
*
*/
@Composable
fun SystemBarsDemo(modifier: Modifier = Modifier) {
val statusBarHeight = getStatusBarHeight()
val navigationBarHeight = getNavigationBarHeight()
Column(
modifier = modifier
.fillMaxSize()
.background(Color(0xFF1A1A1A))
.systemBarsPadding(),
horizontalAlignment = Alignment.CenterHorizontally,
verticalArrangement = Arrangement.Center
) {
Card(
modifier = Modifier.padding(16.dp),
colors = CardDefaults.cardColors(containerColor = Color(0xFF2A2A2A))
) {
Column(
modifier = Modifier.padding(24.dp),
horizontalAlignment = Alignment.CenterHorizontally
) {
Text(
text = "系统栏高度信息",
fontSize = 20.sp,
fontWeight = FontWeight.Bold,
color = Color.White
)
Spacer(modifier = Modifier.height(16.dp))
Text(
text = "状态栏高度: ${statusBarHeight}",
fontSize = 16.sp,
color = Color(0xFFE0E0E0)
)
Spacer(modifier = Modifier.height(8.dp))
Text(
text = "导航栏高度: ${navigationBarHeight}",
fontSize = 16.sp,
color = Color(0xFFE0E0E0)
)
Spacer(modifier = Modifier.height(16.dp))
Text(
text = "此内容区域已添加系统栏内边距",
fontSize = 14.sp,
color = Color(0xFFB0B0B0)
)
}
}
}
}

4
composeApp/src/commonMain/kotlin/com/whitefish/app/ui/components/SystemBarsPadding.kt

@ -14,11 +14,9 @@ import com.whitefish.app.getNavigationBarHeight
@Composable
fun Modifier.systemBarsPadding(): Modifier {
val statusBarHeight: Dp = getStatusBarHeight()
val navigationBarHeight: Dp = getNavigationBarHeight()
return this.padding(
top = statusBarHeight,
bottom = navigationBarHeight
)
}

6
composeApp/src/commonMain/kotlin/com/whitefish/app/ui/home/HomeScreen.kt

@ -17,6 +17,8 @@ import androidx.compose.ui.text.style.TextAlign
import androidx.compose.ui.unit.dp
import androidx.compose.ui.unit.sp
import androidx.lifecycle.viewmodel.compose.viewModel
import com.whitefish.app.getNavigationBarHeight
import com.whitefish.app.getStatusBarHeight
import org.jetbrains.compose.resources.painterResource
import org.jetbrains.compose.ui.tooling.preview.Preview
import ringappkmp.composeapp.generated.resources.Res
@ -54,7 +56,7 @@ fun HomeScreen(
Column(
modifier = Modifier
.fillMaxSize()
.systemBarsPadding() // 添加状态栏和导航栏的内边距
.padding(top = getStatusBarHeight()) // 添加状态栏和导航栏的内边距
) {
// 主内容区域
Box(
@ -93,7 +95,7 @@ private fun BottomNavigationBar(
modifier = Modifier
.fillMaxWidth()
.background(Color(0xFFE8E0E6))
.padding(top = 24.dp),
.padding(top = 24.dp, bottom = getNavigationBarHeight()),
horizontalArrangement = Arrangement.SpaceEvenly
) {
HomeTab.entries.forEach { tab ->

Loading…
Cancel
Save