2016-08-23 1 views
0

Ich entwickle eine App in C# mit Xamarin. Ich verwende den folgenden Code, um das Gerät Bildschirmgröße zu ermitteln:Bildschirmgröße mit der weichen Navigationsleiste richtig erkennen

var metrics = Resources.DisplayMetrics; 
int widthInDp = metrics.WidthPixels/Resources.DisplayMetrics.Density; 
int heightInDp = metrics.HeightPixels/Resources.DisplayMetrics.Density; 

Auf einem Gerät, die physische Navigationstasten hat und keine weiche Navigationsleiste (Samsung SM-E7000), gibt dieser Methode erwartete Ergebnisse:

360dp x 640dp in portrait mode 
640dp x 360dp in landscape mode 

jedoch auf einem Gerät, das keine physischen Navigationstasten hat, hat aber die weiche Navigationsleiste (Nexus 4), diese Methode unerwartet (für mich) Ergebnisse:

384dp x 592dp in portrait mode 
598dp x 384dp in landscape mode 

Es se ems für das Nexus erlauben die Ergebnisse 48dp für die Soft-Navigationsleiste im Hochformat und 42dp im Querformat.

Ich möchte den Vollbildmodus verwenden - wenn das Gerät eine weiche Navigationsleiste hat, möchte ich es ausblenden und den Platz verwenden. Ich kann die weiche Navigationsleiste ausblenden, aber ich muss in der Lage sein, entweder die tatsächliche Bildschirmgröße (zB 384dp x 640dp für das Nexus 4) zu erkennen, oder ob das Gerät eine weiche Navigationsleiste (und vorzugsweise seine Größe) hat, also ich kann den zusätzlichen verfügbaren Platz anpassen, wenn es ausgeblendet ist.

Ich habe gesehen, mehrere Stackoverflow Fragen beantwortet für Java mit Code ähnlich:

public boolean hasNavBar (Resources resources) 
{ 
    int id = resources.getIdentifier("config_showNavigationBar", "bool", "android"); 
    return id > 0 && resources.getBoolean(id); 
} 

aber ich kann nicht die C#/Xamarin Äquivalent finden.

Jede Hilfe wird geschätzt.

Antwort

0

C# Version:

public bool hasNavBar(Resources resources) 
{ 
    int id = resources.GetIdentifier("config_showNavigationBar", "bool", "android"); 
    return id > 0 && resources.GetBoolean(id); 
} 
+0

Danke - geschätzt. – JeffR

Verwandte Themen