2017-05-29 194 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>