# gyf-dev/immersionbar

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/gyf-dev-immersionbar).**

11,459 stars · 1,916 forks · Java · Apache-2.0

## Links

- GitHub: https://github.com/gyf-dev/ImmersionBar
- awesome-repositories: https://awesome-repositories.com/repository/gyf-dev-immersionbar.md

## Topics

`android` `bar` `dialog` `immersion` `kotlin` `navigation` `navigationbar` `status` `statusbar`

## Description

ImmersionBar is a set of control utilities for Android designed to manage immersive display modes, notch-aware layouts, virtual keyboard visibility, and system bar aesthetics. It provides a centralized way to maximize screen real estate by toggling full-screen displays and controlling the behavior of status and navigation bars.

The library distinguishes itself through specialized adaptation for hardware cutouts and notches, calculating precise offsets and window insets to prevent user interface elements from being obscured. It also includes a dedicated handler for soft keyboard management, which resolves conflicts between the virtual keyboard and bottom input fields to ensure active elements remain visible.

The project covers a broad range of UI optimization capabilities, including system bar styling for colors and transparency, icon contrast adjustments based on background luminance, and lifecycle-aware state coordination across activities, fragments, and dialogs. It further provides tools for retrieving pixel-precise display metrics and applying dynamic padding or margins to prevent content overlap with system interface elements.

## Tags

### User Interface & Experience

- [Immersive Mode System Bars](https://awesome-repositories.com/f/user-interface-experience/immersive-mode-system-bars.md) — Maximizes screen real estate by hiding system bars and extending application content to fill the entire display.
- [Notch Display Adjustments](https://awesome-repositories.com/f/user-interface-experience/screen-orientation-detection/screen-orientation-management/coordinate-based-content-placement/notch-display-adjustments.md) — Calculates hardware cutout offsets to align critical layout elements and prevent occlusion by the camera notch.
- [System Bar Occlusion Avoidance](https://awesome-repositories.com/f/user-interface-experience/automatic-element-alignment/system-bar-occlusion-avoidance.md) — Applies padding and margins to stop system bars from obscuring critical application content and interactive elements. ([source](https://github.com/gyf-dev/immersionbar#readme))
- [Lifecycle-Aware Immersive Coordination](https://awesome-repositories.com/f/user-interface-experience/immersive-mode-system-bars/lifecycle-aware-immersive-coordination.md) — Coordinates immersive mode settings across screen components to ensure consistent styling during transitions.
- [Detection Utilities](https://awesome-repositories.com/f/user-interface-experience/screen-orientation-detection/screen-orientation-management/coordinate-based-content-placement/notch-display-adjustments/detection-utilities.md) — Detects the presence of notch screens and retrieves their height to facilitate layout adjustments for cutouts. ([source](https://github.com/gyf-dev/immersionbar#readme))
- [Dimension Retrievals](https://awesome-repositories.com/f/user-interface-experience/screen-orientation-detection/screen-orientation-management/coordinate-based-content-placement/notch-display-adjustments/dimension-retrievals.md) — Provides precise dimension retrieval for status bars, navigation bars, and notch areas to identify hardware display features. ([source](https://github.com/gyf-dev/immersionbar#readme))
- [Dimension Retrievals](https://awesome-repositories.com/f/user-interface-experience/status-bar-controls/dimension-retrievals.md) — Retrieves pixel-precise dimensions of status bars, navigation bars, and screen notches to ensure accurate interface positioning. ([source](https://github.com/gyf-dev/immersionbar#readme))
- [System Bar Visual Styling](https://awesome-repositories.com/f/user-interface-experience/status-bars/status-bar-customizers/system-bar-visual-styling.md) — Customizes the colors, transparency, and visibility of status and navigation bars across different screen types. ([source](https://github.com/gyf-dev/immersionbar#readme))
- [System Bar Overlap Preventions](https://awesome-repositories.com/f/user-interface-experience/system-bar-overlap-preventions.md) — Prevents content from overlapping with the status bar using padding, margins, or dedicated placeholder views. ([source](https://github.com/gyf-dev/immersionbar#readme))
- [System Bar Padding Utilities](https://awesome-repositories.com/f/user-interface-experience/system-bar-padding-utilities.md) — Applies dynamic margins and padding to layout elements to ensure content does not overlap with system bars.
- [System Bar Controls](https://awesome-repositories.com/f/user-interface-experience/system-ui-integrations/system-bar-controls.md) — Controls the visibility, colors, and layout of Android status and navigation bars across different activities and fragments.
- [Edge-to-Edge Layouts](https://awesome-repositories.com/f/user-interface-experience/terminal-user-interfaces/layout-structural-components/interface-display-modes/full-screen-modes/edge-to-edge-layouts.md) — Extends the layout to occupy the entire screen by covering the area behind system navigation and status bars. ([source](https://github.com/gyf-dev/immersionbar#readme))
- [Inset Calculators](https://awesome-repositories.com/f/user-interface-experience/window-management/inset-calculators.md) — Determines system bar and hardware notch dimensions by querying window insets to apply precise layout offsets.
- [Android System Bar Stylers](https://awesome-repositories.com/f/user-interface-experience/android-system-bar-stylers.md) — Adjusts the colors and appearance of status and navigation bars to match an app's visual theme.
- [Cross-Component Bar Styling](https://awesome-repositories.com/f/user-interface-experience/application-window-managers/window-rules/status-bar-overrides/cross-component-bar-styling.md) — Sets colors and transparency for status and navigation bars across activities, fragments, and dialogs. ([source](https://github.com/gyf-dev/immersionbar#readme))
- [Color Themes](https://awesome-repositories.com/f/user-interface-experience/color-themes.md) — Updates system bar colors and icon styles based on the application's visual theme and window attributes.
- [Semantic Color Mappings](https://awesome-repositories.com/f/user-interface-experience/color-themes/semantic-color-mappings.md) — Updates status and navigation bar icon colors using theme resource mapping for visual contrast.
- [System Bar Style Coordinators](https://awesome-repositories.com/f/user-interface-experience/event-driven-state-managers/lifecycle-aware-state-holders/system-bar-style-coordinators.md) — Synchronizes system bar styling across activities and fragments to ensure visual consistency during screen transitions.
- [Multi-Container Immersive Support](https://awesome-repositories.com/f/user-interface-experience/immersive-mode-system-bars/multi-container-immersive-support.md) — Applies immersive settings across activities, fragments, dialogs, and popup windows. ([source](https://github.com/gyf-dev/immersionbar#readme))
- [Fragment-Based Bar Orchestration](https://awesome-repositories.com/f/user-interface-experience/status-bar-lifecycle-management/fragment-based-bar-orchestration.md) — Manages status and navigation bar styles during fragment lifecycle events and pager transitions. ([source](https://github.com/gyf-dev/ImmersionBar/wiki/questions))
- [Luminance-Based Contrast Adjustments](https://awesome-repositories.com/f/user-interface-experience/status-bars/status-bar-customizers/luminance-based-contrast-adjustments.md) — Adjusts status bar fonts and navigation icons to ensure high contrast based on the background color. ([source](https://github.com/gyf-dev/immersionbar#readme))
- [Icon Contrast Controllers](https://awesome-repositories.com/f/user-interface-experience/system-ui-integrations/system-bar-controls/icon-contrast-controllers.md) — Toggles the color of status bar fonts and navigation icons based on background luminance to ensure legibility. ([source](https://github.com/gyf-dev/immersionbar#readme))

### Part of an Awesome List

- [Keyboard Occlusion Prevention](https://awesome-repositories.com/f/awesome-lists/devtools/keyboard-input/keyboard-occlusion-prevention.md) — Adjusts the view frame automatically when the keyboard appears to ensure text input fields remain visible. ([source](https://github.com/gyf-dev/immersionbar#readme))
- [Keyboard Management](https://awesome-repositories.com/f/awesome-lists/devtools/keyboard-management.md) — Uses listeners to detect virtual keyboard visibility changes to resolve layout conflicts with input fields. ([source](https://github.com/gyf-dev/immersionbar#readme))
- [System Bars](https://awesome-repositories.com/f/awesome-lists/devtools/system-bars.md) — Immersive status bar implementation.

### Development Tools & Productivity

- [Window Flag Modifications](https://awesome-repositories.com/f/development-tools-productivity/feature-flags/system-flag-unlocking/window-flag-modifications.md) — Toggles system bar visibility and full-screen behavior by modifying Android window flags and layout parameters at runtime.

### Mobile Development

- [Soft Keyboard Layout Managers](https://awesome-repositories.com/f/mobile-development/soft-keyboard-layout-managers.md) — Handles layout shifts and view repositioning when the virtual keyboard appears to keep active input fields visible.
- [Soft Keyboard Window Managers](https://awesome-repositories.com/f/mobile-development/soft-keyboard-window-managers.md) — Manages window soft-input modes to prevent interface overlap when the Android virtual keyboard is displayed.
- [Android Keyboard Event Tracking](https://awesome-repositories.com/f/mobile-development/android-keyboard-event-tracking.md) — Monitors soft keyboard events to adjust layouts and prevent input fields from being obscured. ([source](https://github.com/gyf-dev/immersionbar#readme))
- [System-Aware Layout Optimizations](https://awesome-repositories.com/f/mobile-development/android-layout-components/system-aware-layout-optimizations.md) — Applies precise padding and margins to ensure app content does not overlap with the system status or navigation bars.
- [System Bar Layout Helpers](https://awesome-repositories.com/f/mobile-development/android-layout-components/system-bar-layout-helpers.md) — Applies precise padding and margins to ensure Android app content does not overlap with system bars.
- [System Bar Compatibility Layers](https://awesome-repositories.com/f/mobile-development/native-android-system-compatibility/system-bar-compatibility-layers.md) — Provides a compatibility layer to manage system bar behavior across various Android versions and screen orientations.

### Operating Systems & Systems Programming

- [Soft Input Mode Controllers](https://awesome-repositories.com/f/operating-systems-systems-programming/keyboard-input-modes/soft-input-mode-controllers.md) — Modifies window soft-input configurations to prevent interface overlap when the virtual keyboard is displayed.

### System Administration & Monitoring

- [Display Cutout Managers](https://awesome-repositories.com/f/system-administration-monitoring/display-configuration-managers/display-cutout-managers.md) — Provides utilities for identifying safe screen areas to prevent UI content from being obscured by camera notches and cutouts.
