2015-03-31 6 views
9

Ich habe ein Problem gefunden, das sich auf die Höhe des relativen Layouts auswirkt, während ich versuchte, der Statusleiste Farbe hinzuzufügen."FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS" betrifft getRootView(). GetHeight()

adding Flag betroffen von der Berechnung der relativen Layouts rootView Höhe.

private void changeStatusBarColor(){ 
     if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { 
      Window window = getWindow(); 
      window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS); 
      window.setStatusBarColor(getResources().getColor(R.color.red_e31837)); 
     } 
    } 

Ich habe eine Ansicht Tree Observer, die mir helfen, die Höhe der RootView verfolgen.

private ViewTreeObserver.OnGlobalLayoutListener keyboardLayoutListener = new ViewTreeObserver.OnGlobalLayoutListener() { 
     @Override 
     public void onGlobalLayout() { 

      int heightDiff = wrapper.getRootView().getHeight() - wrapper.getHeight(); 
} 

int heightDiff bis 1920 gleich, wenn ich FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS verwenden, aber wenn ich changeStatusBarColor() nicht verwenden, int heightDiff gleich bis 1776 (berechnet ohne ActionBar und Statusbar glaube ich). Aber Warum dieses Flags ändern Berechnungen? Vielen Dank im Voraus!

+1

Wenn Sie dieses Flag übergeben, gibt Ihnen der Fenstermanager zusätzlichen Platz zum Zeichnen im Systemleistenbereich. Sie müssen dieses Flag nicht übergeben, um die Farbe der Statusleiste festzulegen, Sie brauchen nur den Aufruf von 'setStatusBarColor (int)'. – alanv

+1

@alanv Danke, ich habe den Grund verstanden; Wenn ich jedoch kein Flag verwende, ändert sich die Farbe der Statusleiste nicht. Das habe ich zu Beginn meiner Arbeit versucht. Weißt du, warum es passieren könnte? – MiloRambaldi

+0

@MiloRambaldi, Hallo! Beheben Sie dieses Problem? – BArtWell

Antwort

3

In meinem Fall trat ein Problem in der SlidingMenu-Bibliothek auf. Hier ist ein solution.

+1

Vielen Dank. Es funktionierte auch in der AndroidResideMenu-Bibliothek. [Hier] (http://stackoverflow.com/questions/28952210/android-residemenu-library-bottom-of-fragment-has-cropping-issue) ist die ähnliche Lösung, die ich getan habe. – MiloRambaldi

Verwandte Themen