2017-05-29 4 views
1

ich versucht habe folgendes Layout in Xamarin Formulare zu erstellen, ein Hintergrundbild mit einer transparenten Statusleiste:Xamarin Forms Hintergrundbild mit transparenten Statusleiste

Image with transparent status bar

Ich möchte ein Hintergrundbild haben mit einer transparenten Statusleiste wie oben abgebildet. Meine Probleme sind:

  1. Ich kann dies auf Android nicht tun, während auf iOS es gut ist. Ich habe versucht, meine Statusleiste transparent und programmgesteuert zu setzen, es scheint, dass mein Bild einfach nicht hinter die Statusleiste gelangt. Ich habe im Internet keine relevanten Informationen darüber gefunden, nur um das zu ändern AppTheme Informationen, die ich gemacht habe, aber nicht funktioniert.

  2. Bei iOS ist die Textfarbe der Statusleiste schwarz und ich kann sie auch nicht in Weiß ändern.

Ich habe zwei Wochen lang versucht, herauszufinden, gefunden, wie es geht, aber ich bin immer noch nicht in der Lage, es zu tun .. Soll ich einen benutzerdefinierten Renderer für diese erstellen? Oder gibt es einen viel einfacheren Weg, es zu tun?

Antwort

3

Sie können diese Lösung verwenden und Farbe anwenden.

In new Android.Graphics.Color(18, 52, 86, 255) können Sie RGBA für Farbe übergeben.

diesen Code hinzufügen Vor LoadApplication() in MainActivity

if (Build.VERSION.SdkInt >= BuildVersionCodes.Lollipop) 
{ 
      Window.DecorView.SystemUiVisibility = 0; 
      var statusBarHeightInfo = typeof(FormsAppCompatActivity).GetField("_statusBarHeight", System.Reflection.BindingFlags.Instance | System.Reflection.BindingFlags.NonPublic); 
      statusBarHeightInfo.SetValue(this, 0); 
      Window.SetStatusBarColor(new Android.Graphics.Color(18, 52, 86, 255)); 
} 

nach LoadApplication() Dieser Code hinzufügen in MainActivity

App.Current.On<Xamarin.Forms.PlatformConfiguration.Android>().UseWindowSoftInputModeAdjust(WindowSoftInputModeAdjust.Resize); 
+0

Danke! Aber immer noch nicht funktioniert! Mein Bild befindet sich nicht hinter meiner Statusleiste (API 22). Ich benutze deine Farbe und reduziere das Alpha, um etwas Transparenz zu haben, aber es kann nicht wie das Bild aussehen, das ich oben hochgeladen habe:/Gibt es ein paar Dinge, die ich in der style.xml hinzufügen muss ?? – Huby03

+0

Tatsächlich funktioniert es ohne den Code nach der LoadApplication und ich entferne auch die SetStatusBar Farbe, aber meine Aktionsleiste ist jetzt in meiner Statusleiste. – Huby03

+0

Sie können Padding für Ihre Seite hinzufügen. –

0

Das sieht aus wie diesen Code in styles.xml werden:

<item name="android:windowTranslucentStatus">true</item>