2017-05-29 45 views
1

我一直在試圖創建Xamarin形式如下的佈局,用透明狀態欄的背景圖像:Xamarin形成與透明狀態欄的背景圖片

Image with transparent status bar

我想有一個背景圖片與上面的圖像一樣的透明狀態欄。我的問題是:

  1. 我無法在Android上這樣做,而在iOS上它是好的。我試圖設置我的狀態欄透明,並以編程方式,它似乎是我的形象只是不支持狀態欄..我沒有在互聯網上找到任何有關信息,只是改變AppTheme的信息,我做了但沒有工作。

  2. 在iOS上,狀態欄的文字顏色爲黑色,也無法將其更改爲白色。

我花了兩個星期試圖找出如何做到這一點,但我仍然無法做到這一點..我應該爲此創建一個自定義的渲染器?還是有更簡單的方法來做到這一點?

回答

3

您可以使用此解決方案並應用顏色。

new Android.Graphics.Color(18, 52, 86, 255)中,您可以通過RGBA獲取顏色。

添加該代碼LoadApplication()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)); 
} 

LoadApplication()後添加該代碼在MainActivity

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

謝謝!但還是不行!我的圖片不在我的狀態欄後面(API 22)。 Iv'e使用了你的顏色,並減少Alpha的透明度,但無法使它看起來像我上面上傳的圖像:/是否有一些東西,我需要在style.xml中添加? – Huby03

+0

實際上,它在LoadApplication之後沒有代碼,我也刪除了SetStatusBar顏色,但是我的操作欄現在處於我的狀態欄中。 – Huby03

+0

您可以爲您添加填充頁面。 –

0

這看起來像在styles.xml可以使用此代碼:

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