【问题标题】:Xamarin MasterDetail page black screenXamarin MasterDetail页面黑屏
【发布时间】:2023-01-11 10:54:24
【问题描述】:
我正在使用 MasterDetail 页面通过 Xamarin 实现一个 APP
然而在iOS中遇到了黑屏问题。
这是例子。
如果我没有像下面这样在 Xaml 文件中放置详细信息页面。
<MasterDetailPage>
<MasterDetailPage.Master>
<ContentPage Title = "Menu">
<ScrollView>
...
</ScrollView>
</ContentPage>
</MasterDetailPage.Master>
<MasterDetailPage.Detail>
<NavigationPage>
<x:Arguments>
<local:xxx_Page />
</x:Arguments>
</NavigationPage>
</MasterDetailPage.Detail>
</MasterDetailPage>
在运行时。如果我在下面打电话
Detail = new NavigationPage(page);
在 iOS 系统中。手机进入黑屏
在安卓系统中。它工作正常。
有什么理由吗?
【问题讨论】:
标签:
xamarin
xamarin.android
xamarin.ios
【解决方案1】:
MasterDetailPage 已过时。您可以改用 FlyoutPage。
我用FlyoutPage引用了你的代码,在iOS上简单测试了一下,没有任何问题,希望对你有帮助:
对于 .xaml 文件:
<FlyoutPage xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
xmlns:local="clr-namespace:FlyoutPageNavigation;assembly=FlyoutPageNavigation"
x:Class="FlyoutPageNavigation.MainPage">
<FlyoutPage.Flyout>
<ContentPage Title="Menu">
<ScrollView>
<StackLayout>
<Label Text="One"/>
<Label Text="Two"/>
<Label Text="Three"/>
</StackLayout>
</ScrollView>
</ContentPage>
</FlyoutPage.Flyout>
对于 .cs 文件:
using System;
using Xamarin.Forms;
namespace FlyoutPageNavigation
{
public partial class MainPage : FlyoutPage
{
public MainPage()
{
InitializeComponent();
Detail=new NavigationPage(new ContactsPage());
}
}
}
Flyout的更多用法可以参考文档:Xamarin.Forms FlyoutPage | Microsoft