fix: 主页面内容在输入法打开时被顶起

This commit is contained in:
Super12138 2025-01-16 16:27:53 +08:00
parent f801741608
commit ad44140ce9
3 changed files with 13 additions and 4 deletions

View file

@ -6,6 +6,8 @@ import android.view.HapticFeedbackConstants
import androidx.activity.ComponentActivity import androidx.activity.ComponentActivity
import androidx.activity.compose.setContent import androidx.activity.compose.setContent
import androidx.activity.enableEdgeToEdge import androidx.activity.enableEdgeToEdge
import androidx.compose.foundation.layout.fillMaxSize
import androidx.compose.ui.Modifier
import androidx.compose.ui.platform.LocalView import androidx.compose.ui.platform.LocalView
import androidx.compose.ui.res.stringResource import androidx.compose.ui.res.stringResource
import cn.super12138.todo.R import cn.super12138.todo.R
@ -58,7 +60,8 @@ class CrashActivity : ComponentActivity() {
exitApp = { exitApp = {
view.performHapticFeedback(HapticFeedbackConstants.KEYBOARD_TAP) view.performHapticFeedback(HapticFeedbackConstants.KEYBOARD_TAP)
finishAffinity() finishAffinity()
} },
modifier = Modifier.fillMaxSize()
) )
} }
} }

View file

@ -4,8 +4,10 @@ import android.os.Bundle
import androidx.activity.ComponentActivity import androidx.activity.ComponentActivity
import androidx.activity.compose.setContent import androidx.activity.compose.setContent
import androidx.activity.enableEdgeToEdge import androidx.activity.enableEdgeToEdge
import androidx.compose.foundation.layout.fillMaxSize
import androidx.compose.material3.MaterialTheme import androidx.compose.material3.MaterialTheme
import androidx.compose.material3.Surface import androidx.compose.material3.Surface
import androidx.compose.ui.Modifier
import androidx.lifecycle.viewmodel.compose.viewModel import androidx.lifecycle.viewmodel.compose.viewModel
import cn.super12138.todo.ui.components.Konfetti import cn.super12138.todo.ui.components.Konfetti
import cn.super12138.todo.ui.navigation.TodoNavigation import cn.super12138.todo.ui.navigation.TodoNavigation
@ -21,7 +23,10 @@ class MainActivity : ComponentActivity() {
Surface(color = MaterialTheme.colorScheme.background) { Surface(color = MaterialTheme.colorScheme.background) {
val mainViewModel: MainViewModel = viewModel() val mainViewModel: MainViewModel = viewModel()
val showConfetti = mainViewModel.showConfetti val showConfetti = mainViewModel.showConfetti
TodoNavigation(viewModel = mainViewModel) TodoNavigation(
viewModel = mainViewModel,
modifier = Modifier.fillMaxSize()
)
Konfetti(state = showConfetti) Konfetti(state = showConfetti)
} }
} }

View file

@ -9,10 +9,11 @@ import androidx.compose.animation.shrinkOut
import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.Column
import androidx.compose.foundation.layout.Row import androidx.compose.foundation.layout.Row
import androidx.compose.foundation.layout.WindowInsets import androidx.compose.foundation.layout.WindowInsets
import androidx.compose.foundation.layout.exclude
import androidx.compose.foundation.layout.fillMaxSize import androidx.compose.foundation.layout.fillMaxSize
import androidx.compose.foundation.layout.ime
import androidx.compose.foundation.layout.padding import androidx.compose.foundation.layout.padding
import androidx.compose.foundation.layout.safeContent import androidx.compose.foundation.layout.safeContent
import androidx.compose.foundation.layout.safeContentPadding
import androidx.compose.foundation.lazy.rememberLazyListState import androidx.compose.foundation.lazy.rememberLazyListState
import androidx.compose.material3.ExperimentalMaterial3Api import androidx.compose.material3.ExperimentalMaterial3Api
import androidx.compose.material3.Scaffold import androidx.compose.material3.Scaffold
@ -98,7 +99,7 @@ fun MainPage(
) )
} }
}, },
contentWindowInsets = WindowInsets.safeContent, contentWindowInsets = WindowInsets.safeContent.exclude(WindowInsets.ime),
modifier = modifier modifier = modifier
) { innerPadding -> ) { innerPadding ->
if (windowSizeClass.windowWidthSizeClass == WindowWidthSizeClass.COMPACT) { if (windowSizeClass.windowWidthSizeClass == WindowWidthSizeClass.COMPACT) {