2016-07-29 22 views
0

Ich versuche, die Navigationsleiste auszublenden, wenn die Tastatur von einem Bearbeitungstext in einer Aktivität gestartet wird. Ich habe viele Lösungen ausprobiert, aber ich hatte nicht viel Glück.Navigationsleiste ausblenden, wenn die Soft-Tastatur gestartet wird Android

Der folgende Code fand ich hier in diesem Forum, aber es beseitigt nicht die Navigationsleiste, wenn die Tastatur gestartet wird.

private void setupMainWindowDisplayMode() 
{ 
    View decorView = setSystemUiVisilityMode(); 
    decorView.setOnSystemUiVisibilityChangeListener(
      new View.OnSystemUiVisibilityChangeListener() 
      { 
       @Override 
       public void onSystemUiVisibilityChange(int visibility) 
       { 
        setSystemUiVisilityMode(); // Needed to avoid exiting immersive_sticky when keyboard is displayed 
       } 
      }); 
} 

private View setSystemUiVisilityMode() 
{ 
    View decorView = getWindow().getDecorView(); 
    int options; 
    options = 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 
      // hide nav bar 
      | View.SYSTEM_UI_FLAG_FULLSCREEN // hide status bar 
      | View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY | View.SYSTEM_UI_FLAG_IMMERSIVE | 
      View.SYSTEM_UI_LAYOUT_FLAGS; 

    decorView.setSystemUiVisibility(options); 
    return decorView; 
} 

Anregungen dankbar

Antwort

0

Nun geschätzt würden Sie vielleicht schon wissen, aber nur um es sicher zu machen.

können Sie überprüfen, ob die Tastatur sichtbar ist oder nicht mit dem folgenden Code ist:

InputMethodManager imm = (InputMethodManager) getActivity() 
     .getSystemService(Context.INPUT_METHOD_SERVICE); 

if (imm.isAcceptingText()) { 
    // keyboard is shown 
} else { 
    // keyboard is not shown 
} 

Dann können Sie entweder verstecken oder die Navigationsleiste zeigen.

https://developer.android.com/training/system-ui/navigation.html#40

Auf der oben API, heißt es

With this approach, touching anywhere on the screen causes the navigation 
bar (and status bar) to reappear and remain visible. The user 
interaction causes the flags to be be cleared. 

wie folgt aussieht kann ein Problem sein. Ich wollte überprüfen, ob das funktioniert, aber ich könnte ein Gerät mit Softkey bekommen. Hoffe das hilft.

Verwandte Themen