我正在寻找一种方法,用Xamarin Forms将Android StatusBar完全透明。我可以通过将android:windowTranslucentStatus
设置为true
,轻松地将其设置为半透明。它将是黑色的,不透明度约为50%,但无论如何,它的背景将是可见的,这不是我想要的。我找到了这篇文章,这正是我所需要的结果https://learnpainless.com/android/material/make-fully-android-transparent-status-bar,但问题是似乎没有明显的方法在Xamarin Forms中实现相同的效果。
我也看过这个主题(在我创建我的主题时有人建议我)Android transparent status bar and actionbar,并在谷歌上搜索了这个主题Xamarin Forms background image with transparent status bar和其他几个主题。但所有这些解决方案最终也都是一个半透明的状态栏。所以我完全被这个问题所困扰
2条答案
按热度按时间ddrv8njm1#
我刚刚找到了一个简单的解决方案。我只需要设置一个带有alpha组件的colorPrimaryDark。我在十六进制值的末尾设置alpha组件(就像在android上一样),但我需要在xamarin的开头设置它。所以解决方案是这样的:
颜色本身(在colors.xml中)是
其中26是十六进制alpha分量。这意味着15% alpha,但如果我把它改为00,我会得到完全透明的状态栏我在这里得到的值是Hex transparency in colors
之后
虽然状态栏变成了透明,但是xamarin并没有在状态栏下绘制页面,只有Activity的背景是可见的
让xamarin在状态栏下绘制内容的唯一方法是通过
android:windowTranslucentStatus
使其半透明但在本例中它看起来像这样:这不是我想要的。所以问题还没有解决
6mzjoqzu2#
您可以在MainActivity.cs的OnCreate方法中执行此操作
这将从所有屏幕中删除状态栏。
如果您希望同时支持两个平台,我希望您在代码隐藏文件中执行此操作: