fix: 待办列表和操作按钮被系统状态栏遮挡
This commit is contained in:
parent
bfc774be8e
commit
ae608fae32
2 changed files with 26 additions and 2 deletions
|
|
@ -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 {
|
||||||
|
|
|
||||||
|
|
@ -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 }
|
||||||
|
)
|
||||||
|
}
|
||||||
Loading…
Reference in a new issue