编写导航抽屉菜单(滑块菜单).(母版页细节)
本文关键字:菜单 母版页 细节 导航 | 更新日期: 2023-09-27 18:07:50
尝试构建滑块菜单,我正在使用来自官方Xamarin的此文档。MasterPageDetail
很奇怪,它不工作。VS2015智能识别出我MasterDetailPage(我的类是从它继承的),但是当我试图启动应用程序时,出现下一个错误:
类型或命名空间名称'MasterPageDetail'在命名空间'Xamarin中不存在。
发生了什么?你知道任何简单的工作演示吗?我用这个问题作为参考,但我没有得到它的工作…滑块
一些答案使用MasterPageDetail,另一个实现的解决方案在应用程序(类),我需要在一个ContentPage
谢谢伴侣。
编辑:我正在使用Xamarin。窗体,我导入它,我没有任何类叫这样(MasterPageDetail)…很奇怪,这听起来像一个愚蠢的事情,但我不能看到它。
MasterDetailPage是来自Xamarin的类。如果你有相同名称的类,那么它可能是冲突的。
下面是一些有用的链接:
https://developer.xamarin.com/guides/xamarin-forms/user-interface/navigation/master-detail-page/https://developer.xamarin.com/api/type/Xamarin.Forms.MasterDetailPage/你也可以从我的Github下载我的例子:
https://github.com/15mgm15/XamarinForms-MasterDetailPage-Recipe-
有一个简单的方法来创建一个使用XAML的
MasterDetailPage
,首先你需要创建一个包含MasterDetailPage
的页面和一个包含DetailPage
的SecondPage
,通过这样做,你需要改变这个页面的层次结构为MasterDetailPage
,最后在MasterDetailPage
中加载一个SecondPage
。 -
在你的项目中创建一个新页面-
MenuPage
,并将页面类型ContentPage更改为MasterDetailPage
<MasterDetailPage xmlns="http://xamarin.com/schemas/2014/forms" BackgroundColor="White" xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml" x:Class="YourProject.MenuPage"> </MasterDetailPage>
-
然后转到
MenuPage.cs
并将层次结构更改为MasterDetailPage。public partial class MenuPage : MasterDetailPage { public ChatPage() { InitializeComponent(); } }
-
回到您的XAML页面-
MenuPage
并添加以下内容:<MasterDetailPage xmlns="http://xamarin.com/schemas/2014/forms" xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml" x:Class="YourProjectName.MenuPage"> <MasterDetailPage.Master> <ContentPage Title="Menu"> <StackLayout Orientation="Vertical"> <!--Here goes your Menu Items--> <Button Text="MyFirstButton"/> <Button Text="MySecondButton"/> <Button Text="MyThirdButton"/> </StackLayout> </ContentPage> </MasterDetailPage.Master> <MasterDetailPage.Detail> <local:SecondPage/> </MasterDetailPage.Detail> </MasterDetailPage>
-
最后你需要添加一个引用到你的
DetailPage
<MasterDetailPage xmlns="http://xamarin.com/schemas/2014/forms" xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml" x:Class="YourProjectName.MenuPage" <!-- Add this line to refer your DetailPage, `SecondPage`--> <!-- put your namespace and repeat in assembly --> xmlns:local="clr-namespace:YourProjectName;assembly=YourProjectName"> </MasterDetailPage>
我希望它能帮助你!
我明白了。
最后,我清理了所有的项目,并使用下一个例子从零开始编写代码(只添加MasterPageItem.cs,小菜一碟):
工作MasterDetailDemo我自己改进了演示,创建了一个母版页细节,其中母版页的项目绑定特定的通用页面,它将用自己的属性填充,其依赖于id传递给页面的构造函数。
Github滑块菜单改进演示