Hallo,
ich entwickle eine App, welche hinterher nur auf Tablets genutzt wird und auch quasi nur benutzt wird, für einen anderen Zweck ist das Tablet nicht da. Durch Android 5 und dem Device Owner habe ich diesen Effekt auch schon erzielt.
Jetzt habe ich jedoch noch folgendes Problem. Normalerweise sieht man nur die App, keine Navigation/Notification Bar. Wenn ich in ein EditText klicke, erscheint die Tastatur mit der Navigation Bar. Bisher hier hin kein Problem, stört ja nicht. Wenn ich jedoch die Tastatur schließe (über den Zurück Pfeil in der Bar), bleibt die Navigation Bar erhalten und ist auch nicht mehr Transparent. Erst nach beenden der Activity und erneuten öffnen dieser, verschwindet die Bar wieder. Woran kann das liegen?
Bisher benutze ich 2 Methoden, um den Fullscreen Mode zu erreichen, in beiden Activitys jeweils in onResume und in onCreate:
public void UiChangeListener()
{
final View decorView = getWindow().getDecorView();
decorView.setOnSystemUiVisibilityChangeListener (new View.OnSystemUiVisibilityChangeListener() {
@Override
public void onSystemUiVisibilityChange(int visibility) {
if ((visibility & View.SYSTEM_UI_FLAG_FULLSCREEN) == 0) {
decorView.setSystemUiVisibility(
View.SYSTEM_UI_FLAG_LAYOUT_STABLE
| View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
| View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
| View.SYSTEM_UI_FLAG_HIDE_NAVIGATION
| View.SYSTEM_UI_FLAG_FULLSCREEN
| View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY);
}
}
});
}
private void goFullScreen() {
int uiOptions = getWindow().getDecorView().getSystemUiVisibility();
int newUiOptions = uiOptions;
// Navigation bar hiding: Backwards compatible to ICS.
if (Build.VERSION.SDK_INT >= 14) {
newUiOptions ^= View.SYSTEM_UI_FLAG_HIDE_NAVIGATION;
}
// Status bar hiding: Backwards compatible to Jellybean
if (Build.VERSION.SDK_INT >= 16) {
newUiOptions ^= View.SYSTEM_UI_FLAG_FULLSCREEN;
}
// Immersive mode: Backward compatible to KitKat.
// Note that this flag doesn't do anything by itself, it only augments the behavior
// of HIDE_NAVIGATION and FLAG_FULLSCREEN. For the purposes of this sample
// all three flags are being toggled together.
// Note that there are two immersive mode UI flags, one of which is referred to as "sticky".
// Sticky immersive mode differs in that it makes the navigation and status bars
// semi-transparent, and the UI flag does not get cleared when the user interacts with
// the screen.
if (Build.VERSION.SDK_INT >= 18) {
newUiOptions ^= View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY;
}
getWindow().getDecorView().setSystemUiVisibility(newUiOptions);
}
Alles anzeigen
Vermutlich ergänzen sich die beiden Methoden, aber das ist die Lösung, die ich mir zusammengesucht habe, leider erzielt sie aber immer noch nicht DEN Erfolg.
Das Testgerät läuft mit Android 5.1.1. .