【问题标题】:Make Android StatusBar transparent( NOT translucent) and NavigationBar normal (Not Transparent) - Xamarin Froms使 Android StatusBar 透明(NOR 半透明)和导航栏正常(不透明) - Xamarin Forms
【发布时间】:2020-11-27 00:31:16
【问题描述】:

我试图让 StatusBar 透明而不像下面的示例那样使底部 NavigationBar 透明:

.

.

我尝试在 MainActivity 中设置标志 LayoutNoLimits

Window.AddFlags(WindowManagerFlags.LayoutNoLimits);

但这会将 StatusBar 和 NavigationBar 都设置为透明,如下例所示。

.

.

有很多帖子建议使用 TranslucentStatus 使其透明,问题是很多人不明白 translucent 和 transparent 之间的区别。

如果不知道有什么区别,请查看Link

如果您使用 TranslucentStatus 标志

Window.AddFlags(WindowManagerFlags.TranslucentStatus);

它不会让它变得透明,但它会让它看起来像下面的例子

在 Android 10 之前,这些半透明的建议中的一些似乎已经奏效,但它不再奏效了。

我也尝试了许多不同的主题/样式配置,但还没有运气。

.

如果有人成功使用了我正在寻找的配置,请与我们分享您的成功。

【问题讨论】:

    标签: android xamarin.forms statusbar transparent


    【解决方案1】:

    终于找到了有用的东西。

    在您的 MainActivity 中,在 Xamarin.Forms.Init() 之前使用以下代码

    if (Build.VERSION.SdkInt >= BuildVersionCodes.Kitkat)
    {
        Window.SetStatusBarColor(Android.Graphics.Color.Transparent);
        var s = SystemUiFlags.LayoutFullscreen | SystemUiFlags.LayoutStable;
        FindViewById(Android.Resource.Id.Content).SystemUiVisibility = (StatusBarVisibility)s;
    }
    

    它给了我我想要的透明状态栏和普通导航栏,如下例所示

    希望这可以帮助那些可能像我一样被卡住的人。

    .

    .

    特别感谢 ColeX 在 Xamarin 社区论坛上的 post

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-07-16
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多