gpt4 book ai didi

c# - Xamarin.Forms - 如何使导航/系统栏在 iOS 和 Android 上透明

转载 作者:太空宇宙 更新时间:2023-11-03 18:23:39 25 4
gpt4 key购买 nike

我正在 Xamarin.Forms 中为 iOS 和 Android 构建一个应用程序,我们的设计要求顶部导航、系统栏和屏幕底部的 Android 系统导航栏是透明的。下面是一个屏幕的模型,给你一个想法。 我们希望背景图片填满整个屏幕。

Home screen mockup

我是一个非常新的开发人员,所以如果我错了请纠正我,但这种 UI 实现似乎是特定于平台的,我正在努力寻找我应该如何在我的跨平台项目。

在过去的几天里,我一直在做大量的研究来解决这个问题,但作为一名 Xamarin 经验有限的开发人员,我很难对如何解决这个问题有一个可靠的想法。 您将如何在 Xamarin.Forms 中创建满足这些要求的 UI?

我是否需要为我正在使用的页面创建自定义渲染器?此 UI 是否属于过于自定义而不适用于 Xamarin.Forms 的类别?

如果您能在此处提供任何见解,我们将不胜感激。提前感谢您的宝贵时间。

最佳答案

非常感谢@SuavePirate 的回答。它让我走上了正确的轨道,并且通过进一步的研究,我能够找到解决我的问题的解决方案。

去除主导航页面上的导航栏:

HomeScreen.xaml.cs 中,我将这一行添加到类构造函数中:

NavigationPage.SetHasNavigationBar(this, false);

要使导航栏透明:

我使用此代码在 App.xaml.cs 中创建主页

MainPage = new NavigationPage(new HomeScreen())
{
BarBackgroundColor = Color.Transparent
};

要在 Android 上使状态栏透明:

在 .Droid 项目的 MainActivity.csOnCreate 中,我在 LoadApplication(new App()); 之前添加了这些行;

Window.AddFlags(WindowManagerFlags.TranslucentNavigation);
Window.SetBackgroundDrawableResource(Resource.Drawable.MyBackgroundPNG);
SetStatusBarColor(Android.Graphics.Color.Transparent);

当我弄清楚如何让它在那里工作时,我会添加 iOS 代码。 :)

关于c# - Xamarin.Forms - 如何使导航/系统栏在 iOS 和 Android 上透明,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41862456/

25 4 0