计划执行与检查节点
executing-plans
按既定实施计划完成工作,保持过程检查和反馈。
android-edge-to-edge【效率与协作】Migrate a Jetpack Compose app to edge-to-edge display and fix system bar inset issues. Use when UI components are obscured by navigation/status bars, fixing IME insets, or enabling edge-to-edge for SDK 35+.
独立 GitHub 快照 · 自动分类 · 以原作者文档为准
Structured workflow for migrating a Compose app to edge-to-edge display.
compileSdk to 35.enableEdgeToEdge(), plan to add it.TextField/OutlinedTextField is present, plan IME inset handling.enableEdgeToEdge() before setContent in every Activity.onCreate.android:windowSoftInputMode="adjustResize" in AndroidManifest for Activities with soft keyboard.Choose ONE method per component to avoid double padding:
PaddingValues to content lambda.TopAppBar, NavigationBar, etc.).Modifier.safeDrawingPadding() or windowInsetsPadding.See inset patterns for RIGHT/WRONG code examples.
For Activities with soft keyboard:
adjustResize in manifest (NOT deprecated SOFT_INPUT_ADJUST_RESIZE).imePadding() or fitInside(WindowInsetsRulers.Ime.current) to content container.imePadding BEFORE verticalScroll().See inset patterns for IME-specific RIGHT/WRONG patterns.
contentPadding of LazyColumn/LazyRow, NOT as Modifier.padding() on parent.safeDrawingPadding().Activity calls enableEdgeToEdge().adjustResize set in AndroidManifest for keyboard Activities.contentPadding../gradlew build succeeds.contentWindowInsets = WindowInsets.safeDrawing with imePadding() on the same content — causes double padding when IME opens.contentPadding, not parent Modifier.padding() — parent padding clips scrolling content.SOFT_INPUT_ADJUST_RESIZE: Deprecated. Use manifest adjustResize attribute.