android - 是否可以使用 Xamarin Forms 将 android 状态栏完全透明?

标签 android xamarin xamarin.forms statusbar transparent

我正在寻找一种使用 Xamarin Forms 使 Android StatusBar 完全透明的方法。我可以通过将 android:windowTranslucentStatus 设置为 true 轻松使其半透明。它将是黑色的,不透明度约为 50%,但无论如何它的背景都是可见的,这不是我想要的。 我找到了这篇文章,结果这正是我所需要的 https://learnpainless.com/android/material/make-fully-android-transparent-status-bar 但问题是似乎没有明显的方法可以在 Xamarin Forms 中实现相同的目标。我只是还没有找到像这样设置装饰标志的方法,也没有找到在 styles.xml 中执行此操作的方法 enter image description here

我也看过这个主题(这是我在创建主题时向我建议的)Android transparent status bar and actionbar并用谷歌搜索这个Xamarin Forms background image with transparent status bar和其他几个。 但所有这些解决方案最终也会有一个半透明的状态栏。 所以我完全坚持这个

最佳答案

我刚刚找到了一个简单的解决方案。 我只需要设置一个带有 alpha 组件的 colorPrimaryDark。我在十六进制值的末尾设置了 alpha 组件(就像在 android 上一样),但我需要在 xamarin 的开头设置它。 所以解决方案是这样的:

<item name="colorPrimaryDark">@color/statusTransparent</item>

颜色本身(在 colors.xml 中)是

<color name="statusTransparent">#26ff9b76</color>

其中 26 是 HEX alpha 分量。这意味着 15% alpha,但如果我将其更改为 00,我将获得完全透明的状态栏 我在这里得到了值 Hex transparency in colors


稍后

嗯,这不是一个完全可行的解决方案。即使状态栏变为透明,xamarin 也不会在此状态栏下绘制其页面,只有 Activity 的背景可见 enter image description here

使 xamarin 在状态栏下绘制其内容的唯一方法是通过 android:windowTranslucentStatus 使其半透明 但在这种情况下,它看起来像这样: enter image description here

这不是我想要的。所以问题仍然悬而未决

关于android - 是否可以使用 Xamarin Forms 将 android 状态栏完全透明?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55208669/

相关文章:

android - Android 中的自定义对话框

android - 在不使用默认 android 应用程序的情况下使用 JavaMail API 在 Android 中发送电子邮件

c# - 如何在 xamarin android 中扩展应用程序类

c# - 请帮助减少 Xamarin.Android apk 大小

c# - 你如何在 xaml 的 ListView 中拉伸(stretch)图像?

java - 替换时如何保存 fragment 内容?

android - Android:警报管理器和 Intent 过滤器不起作用

mvvm - Xamarin Forms - ICommand 和 Command 之间的区别?

ios - 如何在 Xamarin.Forms 中推送时隐藏选项卡栏?

c# - 系统参数NullException : 'Value cannot be null. Parameter name: provider'