Add full support for edge-to-edge #279
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This commit replaces the use of
android:fitsSystemWindows
with inset callbacks to fully implement support for edge-to-edge introduced in API 35. While this makes the code a bit more verbose, this fixes a few UI-related bugs and quirks:This commit also includes a couple minor toolbar changes:
The changes are most visible on API 35 and 36 devices. These are screenshots from my Pixel 9 Pro XL:
API 36 - Main activity - Before and after
Changes:
Screenshots (click to expand):
API 36 - Settings activity - Before and after
Changes:
Screenshots (click to expand):
API 36 - About activity - Before and after
Changes:
Screenshots (click to expand):
I'm always terrified of making UI changes in case they break in older versions of Android. Since the androidx appcompat library has different implementations of
enableEdgeToEdge()
for API <21, 21, 23, 26, and 29, I tested each of those versions. I didn't do a before/after comparison here. I only checked to make sure nothing looked wrong or ugly.API 19
Screenshots (click to expand):
API 21
Screenshots (click to expand):
API 23
Screenshots (click to expand):
API 26
Screenshots (click to expand):
API 29
Screenshots (click to expand):