2017-09-13 2 views
4

In meiner App verwende ich derzeit WindowManager.getDefaultDisplay(), um die Bildschirmgröße zu bestimmen.Erhalten Sie die richtige Bildschirmgröße auf Galaxy S8

Mit der neuen Samsung S8 Navigationsleiste, die mit einem "Punkt" unten links angezeigt und ausgeblendet werden kann, habe ich dieselbe Anzeigegröße für die angezeigte oder ausgeblendete Navigationsleiste. Es gibt immer die Anzeigegröße zurück, als ob die Navigationsleiste angezeigt wird - ich erwarte 1080x2220, wenn die Navigationsleiste ausgeblendet ist, aber immer 1080x2076.

Gibt es eine Möglichkeit, die Fälle programmgesteuert zu unterscheiden und die richtigen Bildschirmabmessungen zu erhalten, damit ich meine App richtig anzeigen kann?

+0

Ich bin nicht allzu vertraut mit der Situation, aber gibt es eine Möglichkeit, die Navigationsleiste (zB 'getNavigationBar()') und prüfen, ob 'isVisible()' zu erhalten oder nicht? Wenn ja, können Sie die Höhe der Navigationsleiste ermitteln und sie dem Bildschirm hinzufügen? Oder ist der Navigationsbereich unabhängig von der Sichtbarkeit in irgendeiner Weise "eingeschränkt"? – ray

+0

Haben Sie versucht, den [Immersive Full-Screen-Modus] (https://developer.android.com/training/system-ui/immersive.html) zu verwenden? – Eselfar

Antwort

1

hatte ich das gleiche Problem wie du, und die Lösung, die ich war gefunden die Höhe der InhaltWurzelAnsicht zu messen:

findViewById(android.R.id.content).getHeight() 

hoffe, es werden Ihnen helfen.

Check hier für mehr detailes über android.R.id.content

Verwandte Themen