fix: 初步修复屏幕边距问题&优化三键导航显示效果

This commit is contained in:
Super12138 2025-04-27 18:46:31 +08:00
parent 3bf982218d
commit 2bcfa9272c
8 changed files with 15 additions and 24 deletions

View file

@ -31,6 +31,9 @@ class CrashActivity : ComponentActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
enableEdgeToEdge()
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) {
window.isNavigationBarContrastEnforced = false
}
super.onCreate(savedInstanceState)
val crashLogs = intent.getStringExtra("crash_logs")

View file

@ -1,5 +1,6 @@
package cn.super12138.todo.ui.activities
import android.os.Build
import android.os.Bundle
import android.view.WindowManager
import androidx.activity.ComponentActivity
@ -26,6 +27,9 @@ class MainActivity : ComponentActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
installSplashScreen()
enableEdgeToEdge()
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) {
window.isNavigationBarContrastEnforced = false
}
super.onCreate(savedInstanceState)
setContent {
val mainViewModel: MainViewModel = viewModel()

View file

@ -4,9 +4,6 @@ import androidx.compose.foundation.layout.Box
import androidx.compose.foundation.layout.PaddingValues
import androidx.compose.foundation.layout.RowScope
import androidx.compose.foundation.layout.WindowInsets
import androidx.compose.foundation.layout.exclude
import androidx.compose.foundation.layout.ime
import androidx.compose.foundation.layout.safeContent
import androidx.compose.material.icons.Icons
import androidx.compose.material.icons.automirrored.outlined.ArrowBack
import androidx.compose.material3.ExperimentalMaterial3Api
@ -46,7 +43,7 @@ fun LargeTopAppBarScaffold(
snackbarHost: @Composable () -> Unit = {},
floatingActionButton: @Composable () -> Unit = {},
floatingActionButtonPosition: FabPosition = FabPosition.End,
contentWindowInsets: WindowInsets = WindowInsets.safeContent.exclude(WindowInsets.ime),
contentWindowInsets: WindowInsets = ScaffoldDefaults.contentWindowInsets,
content: @Composable (PaddingValues) -> Unit
) {
val view = LocalView.current

View file

@ -66,13 +66,13 @@ import cn.super12138.todo.utils.VibrationUtils
@OptIn(ExperimentalMaterial3Api::class, ExperimentalSharedTransitionApi::class)
@Composable
fun TodoEditorPage(
modifier: Modifier = Modifier,
toDo: TodoEntity? = null,
onSave: (TodoEntity) -> Unit,
onDelete: () -> Unit,
onNavigateUp: () -> Unit,
sharedTransitionScope: SharedTransitionScope,
animatedVisibilityScope: AnimatedVisibilityScope,
modifier: Modifier = Modifier
animatedVisibilityScope: AnimatedVisibilityScope
) {
var showExitConfirmDialog by rememberSaveable { mutableStateOf(false) }
var showDeleteConfirmDialog by rememberSaveable { mutableStateOf(false) }

View file

@ -11,12 +11,8 @@ import androidx.compose.animation.fadeOut
import androidx.compose.animation.shrinkOut
import androidx.compose.foundation.layout.Column
import androidx.compose.foundation.layout.Row
import androidx.compose.foundation.layout.WindowInsets
import androidx.compose.foundation.layout.exclude
import androidx.compose.foundation.layout.fillMaxSize
import androidx.compose.foundation.layout.ime
import androidx.compose.foundation.layout.padding
import androidx.compose.foundation.layout.safeContent
import androidx.compose.foundation.lazy.rememberLazyListState
import androidx.compose.material.icons.Icons
import androidx.compose.material.icons.outlined.Add
@ -123,7 +119,6 @@ fun MainPage(
}
}
},
contentWindowInsets = WindowInsets.safeContent.exclude(WindowInsets.ime),
modifier = modifier
) { innerPadding ->
if (windowSizeClass.windowWidthSizeClass == WindowWidthSizeClass.COMPACT) {

View file

@ -28,6 +28,7 @@ import cn.super12138.todo.ui.pages.main.components.TodoCard
@OptIn(ExperimentalSharedTransitionApi::class)
@Composable
fun ManagerFragment(
modifier: Modifier = Modifier,
state: LazyListState,
list: List<TodoEntity>,
onItemClick: (TodoEntity) -> Unit = {},
@ -35,8 +36,7 @@ fun ManagerFragment(
onItemChecked: (TodoEntity) -> Unit = {},
selectedTodoIds: List<Int>,
sharedTransitionScope: SharedTransitionScope,
animatedVisibilityScope: AnimatedVisibilityScope,
modifier: Modifier = Modifier
animatedVisibilityScope: AnimatedVisibilityScope
) {
val context = LocalContext.current
LazyColumnCustomScrollBar(

View file

@ -47,6 +47,7 @@ import cn.super12138.todo.utils.VibrationUtils
@OptIn(ExperimentalFoundationApi::class, ExperimentalSharedTransitionApi::class)
@Composable
fun TodoCard(
modifier: Modifier = Modifier,
id: Int,
content: String,
subject: String,
@ -57,8 +58,7 @@ fun TodoCard(
onCardLongClick: () -> Unit = {},
onChecked: () -> Unit = {},
sharedTransitionScope: SharedTransitionScope,
animatedVisibilityScope: AnimatedVisibilityScope,
modifier: Modifier = Modifier
animatedVisibilityScope: AnimatedVisibilityScope
) {
val view = LocalView.current
val context = LocalContext.current

View file

@ -11,11 +11,6 @@ import androidx.compose.animation.scaleIn
import androidx.compose.animation.shrinkOut
import androidx.compose.animation.togetherWith
import androidx.compose.foundation.layout.Row
import androidx.compose.foundation.layout.WindowInsets
import androidx.compose.foundation.layout.exclude
import androidx.compose.foundation.layout.ime
import androidx.compose.foundation.layout.safeContent
import androidx.compose.foundation.layout.windowInsetsPadding
import androidx.compose.material.icons.Icons
import androidx.compose.material.icons.outlined.Close
import androidx.compose.material.icons.outlined.Delete
@ -117,10 +112,7 @@ fun TodoTopAppBar(
).togetherWith(
fadeOut(animationSpec = tween(90))
)
},
modifier = Modifier.windowInsetsPadding(
WindowInsets.safeContent.exclude(WindowInsets.ime)
)
}
) { inSelectedMode ->
if (!inSelectedMode) {
IconButton(