fix: 待办列表和操作按钮被系统状态栏遮挡

This commit is contained in:
Super12138 2025-01-16 10:01:41 +08:00
parent bfc774be8e
commit ae608fae32
2 changed files with 26 additions and 2 deletions

View file

@ -5,6 +5,7 @@ import androidx.compose.foundation.layout.Column
import androidx.compose.foundation.layout.PaddingValues import androidx.compose.foundation.layout.PaddingValues
import androidx.compose.foundation.layout.fillMaxSize import androidx.compose.foundation.layout.fillMaxSize
import androidx.compose.foundation.layout.padding import androidx.compose.foundation.layout.padding
import androidx.compose.foundation.layout.safeContentPadding
import androidx.compose.foundation.lazy.LazyColumn import androidx.compose.foundation.lazy.LazyColumn
import androidx.compose.foundation.lazy.LazyListState import androidx.compose.foundation.lazy.LazyListState
import androidx.compose.foundation.lazy.items import androidx.compose.foundation.lazy.items
@ -45,7 +46,8 @@ fun ManagerFragment(
) { ) {
LazyColumn( LazyColumn(
state = state, state = state,
contentPadding = PaddingValues(horizontal = TodoDefaults.screenPadding) contentPadding = PaddingValues(horizontal = TodoDefaults.screenPadding),
modifier = Modifier.safeContentPadding()
) { ) {
if (list.isEmpty()) { if (list.isEmpty()) {
item { item {

View file

@ -4,6 +4,7 @@ import androidx.compose.animation.AnimatedContent
import androidx.compose.animation.AnimatedVisibility import androidx.compose.animation.AnimatedVisibility
import androidx.compose.animation.animateColorAsState import androidx.compose.animation.animateColorAsState
import androidx.compose.foundation.layout.Row import androidx.compose.foundation.layout.Row
import androidx.compose.foundation.layout.safeContentPadding
import androidx.compose.material.icons.Icons import androidx.compose.material.icons.Icons
import androidx.compose.material.icons.outlined.Close import androidx.compose.material.icons.outlined.Close
import androidx.compose.material.icons.outlined.Delete import androidx.compose.material.icons.outlined.Delete
@ -18,8 +19,12 @@ import androidx.compose.material3.TopAppBar
import androidx.compose.material3.TopAppBarDefaults import androidx.compose.material3.TopAppBarDefaults
import androidx.compose.runtime.Composable import androidx.compose.runtime.Composable
import androidx.compose.runtime.getValue import androidx.compose.runtime.getValue
import androidx.compose.runtime.mutableStateOf
import androidx.compose.runtime.remember
import androidx.compose.runtime.setValue
import androidx.compose.ui.Modifier import androidx.compose.ui.Modifier
import androidx.compose.ui.res.stringResource import androidx.compose.ui.res.stringResource
import androidx.compose.ui.tooling.preview.Preview
import cn.super12138.todo.R import cn.super12138.todo.R
@OptIn(ExperimentalMaterial3Api::class) @OptIn(ExperimentalMaterial3Api::class)
@ -61,7 +66,10 @@ fun TodoTopAppBar(
) )
}, },
actions = { actions = {
AnimatedContent(selectedMode) { inSelectedMode -> AnimatedContent(
targetState = selectedMode,
modifier = Modifier.safeContentPadding()
) { inSelectedMode ->
if (!inSelectedMode) { if (!inSelectedMode) {
IconButton( IconButton(
onClick = toSettingsPage onClick = toSettingsPage
@ -95,3 +103,17 @@ fun TodoTopAppBar(
) )
) )
} }
@Preview(locale = "zh-rCN", showBackground = true)
@Composable
private fun TodoTopAppBarPreview() {
var selectedMode by remember { mutableStateOf(false) }
TodoTopAppBar(
selectedTodoIds = (1..10).toList(),
selectedMode = selectedMode,
onCancelSelect = { selectedMode = !selectedMode },
onSelectAll = { },
onDeleteSelectedTodo = { },
toSettingsPage = { selectedMode = !selectedMode }
)
}