Status Update
Comments
ki...@google.com <ki...@google.com>
ch...@google.com <ch...@google.com>
ol...@gmail.com <ol...@gmail.com> #2
I believe I'm having a related problem on certain devices. I set the systemBarBehavior as seen in line below:
WindowInsetsControllerCompat(window, main_container).systemBarsBehavior = WindowInsetsControllerCompat.BEHAVIOR_SHOW_TRANSIENT_BARS_BY_SWIPE
Although I'm setting the system bar behavior to BEHAVIOR_SHOW_TRANSIENT_BARS_BY_SWIPE
, it seems to be behaving as
BEHAVIOR_SHOW_BARS_BY_TOUCH
on some devices. After i hide the system UI (see fun
below) then touch the screen the bottom system navigation bar appears (the status bar remains hidden). When i swipe down from the top, the system status bar does appear transparent and goes away after a few seconds but the bottom system nav bar remains and isn't transparent.
Bug appears on: Galaxy s9+ (android 10), Galaxy Note 10+ (android 10). Bug does not appear on: Google Pixel 3a (android 11), Google Pixel 3 (android 11). I haven't tested on any other devices besides Galaxy s6 but that phone has hardware buttons so it doesn't apply.
Here's my code to go into full screen mode:
// Hide the app action bar, system status bar and system navigation bar
private fun hideSystemUI() {
supportActionBar?.hide()
WindowCompat.setDecorFitsSystemWindows(window, false)
WindowInsetsControllerCompat(window, main_container).let { controller ->
controller.hide(WindowInsetsCompat.Type.statusBars() or WindowInsetsCompat.Type.navigationBars())
controller.systemBarsBehavior = WindowInsetsControllerCompat.BEHAVIOR_SHOW_TRANSIENT_BARS_BY_SWIPE
}
}
ga...@gmail.com <ga...@gmail.com> #3
mk...@qa.edx.org <mk...@qa.edx.org> #4
Bug described above (where any touch on the screen reveals the bottom navigation bar) happens on Xiaomi Redmi Note 9S using Android 10 (MIUI 12) as well.
ak...@gmail.com <ak...@gmail.com> #5
ko...@gmail.com <ko...@gmail.com> #6
This is more of a missing feature as nobody has implemented the setSystemBarsBehavior
in Impl20
which is the implementation used on pre-30 devices. This shouldn't be such a big deal to implement but it is crucial for correct compat behavior. Please fix this asap!
li...@gmail.com <li...@gmail.com> #7
al...@gmail.com <al...@gmail.com> #8
Bug is real on every android 10 device wich i have on all alphas and beta core ctx versions.
ii...@gmail.com <ii...@gmail.com> #9
I assumed the old method is implemented since Core is on beta release already, but upon closer inspection the method only implemented for API 30. Revert revert we go...
jo...@gmail.com <jo...@gmail.com> #10
Hi, is there someone already working on this? I needed this feature so I implemented it. I can improve it and submit a pull request :D
ca...@google.com <ca...@google.com> #11
Thank you all for reporting this bug. We are actively working on this but the backport implementation uncovered some other bugs that need to be fixed and tested in order to submit all the changes.
[Deleted User] <[Deleted User]> #12
This is blocking for the correct usage of WindowInsetsControllerCompat
.
Is someone still working on this?
lu...@toyrocketscience.com <lu...@toyrocketscience.com> #13
ap...@google.com <ap...@google.com> #14
Branch: androidx-main
commit 480d10395d28bf22e9f4539f4b992a344628779b
Author: Vadim Caen <caen@google.com>
Date: Mon Feb 08 16:23:39 2021
Implement setSystemBarsBehavior for pre 30 SDK
Test: WindowInsetsControllerCompatActivityTest#systemBarsBehavior_swipe
Test:
WindowInsetsControllerCompatActivityTest#systemBarsBehavior_transient
Test: WindowInsetsControllerCompatActivityTest#systemBarsBehavior_touch
Bug: 173203649
Change-Id: I062c841f0e4201fddfcf1489dbfaff605bebbdb6
M core/core/src/androidTest/java/androidx/core/view/WindowInsetsAnimationCompatActivityTest.kt
M core/core/src/androidTest/java/androidx/core/view/WindowInsetsControllerCompatActivityTest.kt
M core/core/src/main/java/androidx/core/view/ViewCompat.java
M core/core/src/main/java/androidx/core/view/WindowInsetsAnimationCompat.java
M core/core/src/main/java/androidx/core/view/WindowInsetsControllerCompat.java
M samples/Support4Demos/src/main/java/com/example/android/supportv4/view/WindowInsetsControllerPlayground.kt
M samples/Support4Demos/src/main/res/layout/activity_insets_controller.xml
ca...@google.com <ca...@google.com>
lb...@gmail.com <lb...@gmail.com> #15
Is this a deprecation issue, or something to implement for new/old API of Android?
ca...@google.com <ca...@google.com> #16
Android R introduced WindowInsetsController.setSystemBarsBehavior()
and the API was added to Androidx but the backport was not implemented. It should be release in core:1.5.0
stable
jd...@xooloo.com <jd...@xooloo.com> #17
getSystemBarsBehavior() is still unimplemented…
Description
BEHAVIOR_SHOW_BARS_BY_SWIPE
replacesSYSTEM_UI_FLAG_IMMERSIVE
as perBEHAVIOR_SHOW_TRANSIENT_BARS_BY_SWIPE
withSYSTEM_UI_FLAG_IMMERSIVE_STICKY
WindowInsetsControllerCompat
should correctly set those deprecated flags on pre-API 30 devices when you callshow()
orhide()
.