gpt4 book ai didi

c# - 如何使用依赖注入(inject)在 Xamarin.Forms 中实现 Flyoutnavigation

转载 作者:行者123 更新时间:2023-11-29 11:37:12 33 4
gpt4 key购买 nike

我将如何使用依赖注入(inject)来使用 Flyoutnavigation对于我的 iOS 项目。

我决定坚持使用 Android 的默认 MasterDetailPage,因为它看起来不像 iOS 那么糟糕。

这是我到目前为止所做的:

在 PCL 中

IMainPage.cs:

public interface IMainPage
{
Page GetMainPage();
}

应用程序:

public partial class App : Application
{
public App()
{
MainPage = DependencyService.Get<IMainPage>().GetMainPage();
}

protected override void OnStart()
{
// Handle when your app starts
}

protected override void OnSleep()
{
// Handle when your app sleeps
}

protected override void OnResume()
{
// Handle when your app resumes
}
}

在安卓系统中

MainPage_Android.cs:

[assembly: Xamarin.Forms.Dependency(typeof(MainPage_Android))]
namespace ProjectName.Droid
{
public class MainPage_Android : MasterDetailPage, IMainPage
{
private NavigationPage detail;
private MasterPage master;

public Page GetMainPage()
{
MasterDetailPage mdp = new MasterDetailPage();

//Master
master = new MasterPage();
MasterBehavior = MasterBehavior.Popover;
mdp.Master = master;

//Detail
detail = new NavigationPage(new Home())
{
BarBackgroundColor = Color.FromHex("#01A0E1"),
BarTextColor = Color.White
};
mdp.Detail = detail;

return mdp;
}
}
}

在 iOS 中

  • 我卡在这里了..如何使用 Flyoutnavigation 返回页面?

最佳答案

如果你想在 Android 上使用默认样式,在 iOS 上使用自定义样式,你可以尝试为 iOS 上的 MasterDetailPage 制作一个自定义渲染器。然后嵌入您的 Flyoutnavigation

这是我的 iPad 渲染器:

[assembly: ExportRenderer(typeof(MainPage), typeof(MainPageRenderer))]
namespace FlyoutNavigationDemo.iOS
{
public class MainPageRenderer : TabletMasterDetailRenderer
{
//put your Flyoutnavigation's code here
}
}

因为 Flyoutnavigation 的代码太多了。我给你做了一个小样,你可以引用here了解更多详情。

关于c# - 如何使用依赖注入(inject)在 Xamarin.Forms 中实现 Flyoutnavigation,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48432815/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com