Open canado opened 5 years ago
It seems that the status bar hide was working perfectly prior Android Software update. Since the last or the previous update the StatusBar.hide() is no more working The only solution would be to trigger an alert but this is way too much overkill!
Thanks
It seems that the status bar hide was working perfectly prior Android Software update.
Command or Code
Environment, Platform, Device
Version information
Can you fill out this information please, especially since potentially related to an android OS version.
You are right here it is both cases working / not working Android SM-G950W
not working Android 9 / One UI version Build number PPR1.180610.011.G950WVLS6CSH1
Working previous version I don't know
I'm unable to reproduce this on my Android 9 device.
I have copied your preferences and created a text field and a button. The button will hide the statusbar by calling StatusBar.hide()
I click the button and observe the statusbar hiding. I then click on the textfield to give it focus, I observe the keyboard has opened and the status bar is still hidden at this time. Let me know if I did something wrong.
I would advise to ensure that your cordova-android
platform & tooling is up to date with the latest versions available. If the issue still persists, consider creating a minimal cordova app that reproduces the issue and share a github repo.
My android device is: SM-N960W
Ok thanks for the advice I can confirm that it is working perfectly fine on Android S7 SM-G930W8 Android 8
Also worth note that you're using an older version of the Cordova CLI, so when you simply run cordova platform add android
, it will install an older version of the platform as well.
The latest version of the CLI is 9.0.0
but if something is blocking you from upgrading (9.0.0
does have some breaking changes for plugin authors), you can use cordova platform add android@8
to install the latest version of cordova-android
. I created my cordova project using CLI 8.1.2
.
I am able to compile on CLI 9.0.0, and I still have the same issue : (
Can you provide me a sample reproduction app? I'll take a deeper look later tonight.
https://github.com/apache/cordova-contribute/blob/master/create-reproduction.md
Please note that the status bar is a little different from the traditional status bar as it contains two extra icons for gaming.
see screenshot attached https://imgur.com/a/DPT6bbU
The UI in the picture is not the status bar. It's the navigation bar. The status bar is what appears on the top of the screen, e.g where the time and battery indicator is located.
You are right, I managed to fix the issue on the "navigation bar" by doing this
if (window.StatusBar){
window.StatusBar.show();
setTimeout(function(){
window.StatusBar.hide();
},5);
}
when I bring up the status bar and hide it again, it makes the navigation bar disappear. If you know any other solution to remove the navigation bar, let me know.
Also sorry for the misunderstanding
I'm not sure why status bar APIs would be changing the navigation bar. That sounds like an unintended side effect to me and probably a bug. StatusBar.show()/StatusBar.hide()
should only be affecting the status bar, not the navigation bar.
Cordova doesn't have any APIs that specifically targets the navigation bar. Although there is probably a third-party plugin available to do this. A quick search led me to older plugin but I cannot vouch if it works as it hasn't received an update for the last 4 years.
Just tested it, and I can confirm it is not working. Anyway if people have the same issue as me with the navigation bar, at least there is a "fix"
package.json
"dependencies": {
"cordova-android": "^8.1.0",
"cordova-plugin-splashscreen": "^5.0.3",
"cordova-plugin-statusbar": "^2.4.3"
}
config.xml
<preference name="Orientation" value="portrait" />
<preference name="Fullscreen" value="true" />
This is what's going on on my side, maybe be relevant
When an input element is focused status bar is displayed as well as keyboard. When an input element is blurred status bar doesn't go away. However, if I call window.StatusBar.hide()
at app initialization the problem is gone, that is, status bar doesn't show up on input focus.
I am also facing the same issue with Status Bar, the Status bar keeps overlapping the UI, until we use any input, once any input in App is being focussed out, the status bar starts behaving normally, i have tested this right from Android 8 until Android 13, real devices and simulators as well, but everywhere the problem remains the same. any help will be deeply appreciated.
Bug Report
Problem
When the user focus on an input text field, the keyboard appears but also the status bar When trying to hide the status bar in focusin event with StatusBar.hide() the status bar is not hidding. Also when calling StatusBar.hide() on focusout, the status bar is still not hiding. Also when calling StatusBar.hide() with a little setTimeout 500ms the status bar is not hidding
What is expected to happen?
When using StatusBar.hide() the status bar should disappear
What does actually happen?
When using StatusBar.hide() the status bar is not hidding
Information
Please note that if an alert is invoked the status bar is disappearing
Command or Code
Environment, Platform, Device
Version information
Checklist