Android Edge To Edge
CommunityHoangNguyen0403
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+.
Overview
- Repository
- HoangNguyen0403/agent-skills-standard
- Publisher
- HoangNguyen0403
- Stars
- 585
- Forks
- 163
- Bundled files
- 2
- License
- MIT
- Updated
- Nov 14, 2026
Installation
tmp=$(mktemp -d)
git clone --depth 1 https://github.com/HoangNguyen0403/agent-skills-standard.git "$tmp"
mkdir -p ~/.claude/skills
cp -R "$tmp/skills/android/android-edge-to-edge" ~/.claude/skills/android-edge-to-edge
rm -rf "$tmp"tmp=$(mktemp -d)
git clone --depth 1 https://github.com/HoangNguyen0403/agent-skills-standard.git "$tmp"
mkdir -p ~/.codex/skills
cp -R "$tmp/skills/android/android-edge-to-edge" ~/.codex/skills/android-edge-to-edge
rm -rf "$tmp"Install the Android Edge To Edge agent skill from https://github.com/HoangNguyen0403/agent-skills-standard/tree/develop/skills/android/android-edge-to-edge into this project's skills folder.Instructions
Edge-to-Edge Migration
Priority: P1 (HIGH)
Structured workflow for migrating a Compose app to edge-to-edge display.
Prerequisites
- Project MUST use Jetpack Compose.
- Project MUST target SDK 35+. If lower, increase
compileSdkto 35.
Step 1: Plan
- Locate all Activity classes. For each without
enableEdgeToEdge(), plan to add it. - In each Activity, find all lists, FABs, and text fields that need inset handling.
- If
TextField/OutlinedTextFieldis present, plan IME inset handling.
Step 2: Enable edge-to-edge
- Add
enableEdgeToEdge()beforesetContentin everyActivity.onCreate. - Add
android:windowSoftInputMode="adjustResize"in AndroidManifest for Activities with soft keyboard.
Step 3: Apply insets
Choose ONE method per component to avoid double padding:
- PREFERRED — Scaffold: Pass
PaddingValuesto content lambda. - Material 3 components: Use built-in inset handling (
TopAppBar,NavigationBar, etc.). - Outside Scaffold: Use
Modifier.safeDrawingPadding()orwindowInsetsPadding.
See inset patterns for RIGHT/WRONG code examples.
Step 4: Handle IME
For Activities with soft keyboard:
- Set
adjustResizein manifest (NOT deprecatedSOFT_INPUT_ADJUST_RESIZE). - Add
imePadding()orfitInside(WindowInsetsRulers.Ime.current)to content container. - Place
imePaddingBEFOREverticalScroll().
See inset patterns for IME-specific RIGHT/WRONG patterns.
Step 5: Lists and FABs
- Apply inset padding to
contentPaddingofLazyColumn/LazyRow, NOT asModifier.padding()on parent. - FABs inside Scaffold are handled automatically. Outside Scaffold, use
safeDrawingPadding().
Verification
- Every
ActivitycallsenableEdgeToEdge(). -
adjustResizeset in AndroidManifest for keyboard Activities. - Text fields have IME inset handling.
- List items scroll behind system bars via
contentPadding. -
./gradlew buildsucceeds.
Anti-Patterns
- No double inset padding: Never combine
contentWindowInsets = WindowInsets.safeDrawingwithimePadding()on the same content — causes double padding when IME opens. - No parent padding on lists: Apply insets to
contentPadding, not parentModifier.padding()— parent padding clips scrolling content. - No
SOFT_INPUT_ADJUST_RESIZE: Deprecated. Use manifestadjustResizeattribute.
References
Bundled files
FAQ
What does Android Edge To Edge do?
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+.
Who made Android Edge To Edge?
HoangNguyen0403 (a community member) publishes it in the HoangNguyen0403/agent-skills-standard repository on GitHub.
Is Android Edge To Edge free?
Yes. Android Edge To Edge is open source, published by HoangNguyen0403 under the MIT license.
What comes with Android Edge To Edge?
Its instructions and 2 files the agent reads only when a task needs them, such as references, examples or scripts.
Which agents can use Android Edge To Edge?
Any coding agent that reads SKILL.md files, including Claude Code, Codex, Cursor, GitHub Copilot and Gemini CLI. The agent loads the skill when a task matches its description.
What are agent skills?
An agent skill is a folder with a SKILL.md file: instructions that teach a coding agent how to do one kind of task, and optionally files it can read while it works. The agent keeps only the skill's name and description in mind and reads the rest when a task calls for it.
How are agent skills different from MCP servers?
An MCP server gives an agent new tools to call, code that runs somewhere and returns results. A skill gives it knowledge: how to approach a task with the tools it already has. Many agents use both.
How can my agent test my Android app?
Robomori lets coding agents create, start and control Android emulators and devices from one command, so they can install your app, take screenshots and check dark mode, font sizes and languages.