2016-11-17 2 views
0

In meiner Anwendung zeige ich Liste der Karten an. Wenn die erste Karte sichtbar ist, ist die Statusleiste für andere Listenelemente durchscheinend und nicht durchscheinend. Um dies zu erreichen Ich habeAndroid: FLAG_TRANSLUCENT_STATUS liefert keine korrekte Bildschirmhöhe

verwendet
getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS); 

Es verschiebt Bildschirm und ich bin nicht richtig Bildschirmhöhe bekommen. Ich habe die Höhe der Listenelemente als übergeordnetes Element festgelegt, aber getHeight gibt den Wert der Höhe als Bildschirmhöhe - Statusleistenhöhe zurück.

+0

Nach der Zugabe von FLAOG_TRANSLUCENT_STATUS, onLayout- Methode der übergeordneten Ansicht und gemalt Layout aufgerufen hatte brauche ich einig Rückruf einmal Bildschirmgröße voll geändert hat Bildschirm, so dass ich die Ansicht Padding ändern kann. Mein Problem ist, nachdem ich das Window-Flag hinzugefügt habe, ändere ich den View-Padding, der onLayout-Methode aufruft. Hier bekomme ich nicht die richtige Bildschirmhöhe (Es gibt immer Bildschirmhöhe - Statusleiste Höhe) – Manish

Antwort

0

Einstellung TreeObserver auf Fensteransicht hat für mich gearbeitet. Nach der Zugabe von FLAG_TRANSLUCENT_STATUS, hinzugefügt Baum Beobachter und im Innern mir die übergeordneten Ansicht Polsterung, die richtig

getWindow().getDecorView().getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() { 
      public void onGlobalLayout() { 

      } 
});