From ae608fae32218fb0adc667803985f30af2e94889 Mon Sep 17 00:00:00 2001 From: Super12138 <70494801+Super12138@users.noreply.github.com> Date: Thu, 16 Jan 2025 10:01:41 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E5=BE=85=E5=8A=9E=E5=88=97=E8=A1=A8?= =?UTF-8?q?=E5=92=8C=E6=93=8D=E4=BD=9C=E6=8C=89=E9=92=AE=E8=A2=AB=E7=B3=BB?= =?UTF-8?q?=E7=BB=9F=E7=8A=B6=E6=80=81=E6=A0=8F=E9=81=AE=E6=8C=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../todo/ui/pages/main/ManagerFragment.kt | 4 +++- .../ui/pages/main/components/TodoTopAppBar.kt | 24 ++++++++++++++++++- 2 files changed, 26 insertions(+), 2 deletions(-) diff --git a/app/src/main/kotlin/cn/super12138/todo/ui/pages/main/ManagerFragment.kt b/app/src/main/kotlin/cn/super12138/todo/ui/pages/main/ManagerFragment.kt index 1f4ff8e..74a23c1 100644 --- a/app/src/main/kotlin/cn/super12138/todo/ui/pages/main/ManagerFragment.kt +++ b/app/src/main/kotlin/cn/super12138/todo/ui/pages/main/ManagerFragment.kt @@ -5,6 +5,7 @@ import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.PaddingValues import androidx.compose.foundation.layout.fillMaxSize import androidx.compose.foundation.layout.padding +import androidx.compose.foundation.layout.safeContentPadding import androidx.compose.foundation.lazy.LazyColumn import androidx.compose.foundation.lazy.LazyListState import androidx.compose.foundation.lazy.items @@ -45,7 +46,8 @@ fun ManagerFragment( ) { LazyColumn( state = state, - contentPadding = PaddingValues(horizontal = TodoDefaults.screenPadding) + contentPadding = PaddingValues(horizontal = TodoDefaults.screenPadding), + modifier = Modifier.safeContentPadding() ) { if (list.isEmpty()) { item { diff --git a/app/src/main/kotlin/cn/super12138/todo/ui/pages/main/components/TodoTopAppBar.kt b/app/src/main/kotlin/cn/super12138/todo/ui/pages/main/components/TodoTopAppBar.kt index 72359e9..c9cf2a3 100644 --- a/app/src/main/kotlin/cn/super12138/todo/ui/pages/main/components/TodoTopAppBar.kt +++ b/app/src/main/kotlin/cn/super12138/todo/ui/pages/main/components/TodoTopAppBar.kt @@ -4,6 +4,7 @@ import androidx.compose.animation.AnimatedContent import androidx.compose.animation.AnimatedVisibility import androidx.compose.animation.animateColorAsState import androidx.compose.foundation.layout.Row +import androidx.compose.foundation.layout.safeContentPadding import androidx.compose.material.icons.Icons import androidx.compose.material.icons.outlined.Close import androidx.compose.material.icons.outlined.Delete @@ -18,8 +19,12 @@ import androidx.compose.material3.TopAppBar import androidx.compose.material3.TopAppBarDefaults import androidx.compose.runtime.Composable 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.res.stringResource +import androidx.compose.ui.tooling.preview.Preview import cn.super12138.todo.R @OptIn(ExperimentalMaterial3Api::class) @@ -61,7 +66,10 @@ fun TodoTopAppBar( ) }, actions = { - AnimatedContent(selectedMode) { inSelectedMode -> + AnimatedContent( + targetState = selectedMode, + modifier = Modifier.safeContentPadding() + ) { inSelectedMode -> if (!inSelectedMode) { IconButton( onClick = toSettingsPage @@ -94,4 +102,18 @@ fun TodoTopAppBar( containerColor = animatedTopAppBarColors ) ) +} + +@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 } + ) } \ No newline at end of file