我一直在尝试在Xamarin Forms中创建以下布局,这是一个带透明状态栏的背景图片:
我想要一个带有透明状态栏的背景图像,如上图所示。我的问题是:
我无法在Android上执行此操作,而在iOS上则不错。我已尝试将状态栏设置为透明并以编程方式进行,似乎我的图片不会落后于状态栏...我没有在互联网上找到任何相关信息它,只是为了改变我所做的但没有工作的AppTheme信息。
在iOS上,状态栏文字颜色为黑色,也无法将其更改为白色。
我花了两周的时间试图了解如何操作,但我仍然无法做到这一点。我应该为此创建一个自定义渲染器吗?或者有更简单的方法吗?
答案 0 :(得分: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);
答案 1 :(得分:1)
这似乎是在styles.xml中使用此代码:
<item name="android:windowTranslucentStatus">true</item>