如何在xamarin中设计滑动菜单

如何在xamarin中设计滑动菜单,xamarin,xamarin.forms,Xamarin,Xamarin.forms,大家早上好 我是xamarin.forms的新手,我正在使用visual studio 2017开发一款跨平台的苹果手机 我创建了一个母版详细信息页面,以便使用幻灯片导航菜单 幻灯片导航功能正常,但我需要对其进行增强 下面是我所做工作的屏幕截图 下面是我的代码 <MasterDetailPage xmlns="http://xamarin.com/schemas/2014/forms" xmlns:x="http://schemas.mi

大家早上好 我是xamarin.forms的新手,我正在使用visual studio 2017开发一款跨平台的苹果手机

我创建了一个母版详细信息页面,以便使用幻灯片导航菜单

幻灯片导航功能正常,但我需要对其进行增强

下面是我所做工作的屏幕截图

下面是我的代码

<MasterDetailPage  xmlns="http://xamarin.com/schemas/2014/forms"
         xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
               Title="first page"
         x:Class="HelloWorld.ContactPage" IsPresented="True">
<MasterDetailPage.Master>
    <ContentPage  Padding="0, 20, 0, 0" Title="Contact">
        <Image Source="icon.png"/>
        <ListView   x:Name="ListView" ItemSelected="ListView_ItemSelected">
            <ListView.ItemTemplate>
                <DataTemplate>
                    <!--<TextCell  Text="{Binding Name}" Detail="{Binding Status}"  />-->
               
                    <TextCell  Text="{Binding Name}" Detail="{Binding Status}"  />
                </DataTemplate>
            </ListView.ItemTemplate>

        </ListView>
    </ContentPage>
</MasterDetailPage.Master>

<MasterDetailPage.Detail>
    <ContentPage>
        <Image Source="icon.png"/>
    </ContentPage>
</MasterDetailPage.Detail>

公共部分类联系人页面:MasterDetailPage
{
公众联络页()
{
初始化组件();
ListView.ItemsSource=新列表
{
新联系人{Name=“Home”,ImageUrl=”http://lorempixel.com/1920/1080/sports/1"},
新联系人{Name=“About”,ImageUrl=”http://lorempixel.com/1920/1080/sports/2,Status=“feelgood”}
};
}
//async void ListView\u ItemSelected(对象发送方,SelectedItemChangedEventArgs e)
void ListView_ItemSelected(对象发送者,SelectedItemChangedEventArgs e)
{
var contact=e.选择editem作为联系人;
如果(contact.Name==“主页”)
{
详细信息=新导航页面(新GreetPage());
}
其他的
{
详细信息=新导航页面(新联系人详细信息页面(联系人));
}
IsPresented=假;
//如果(如SelectedItem==null)
//返回;
//var contact=e.选择editem作为联系人;
//等待Navigation.PushAsync(新联系人详细信息页面(联系人));
//ListView.SelectedItem=null;
}
}
下面是我预期的输出图像


事实上,你的问题并不直截了当,但我应该能够回答。 你需要做一些事情来完成这项任务

  • 创建模型

  • 使用模板创建Masterdetail

  • 创建幻灯片页面。 删除它附带的所有页面,如MasterDetailPageMaster、MasterDetailPageDetail和MasterDetailPageMenuItem。之后,将“MasterDetailPage”更改为MainPage

         <MasterDetailPage xmlns="http://xamarin.com/schemas/2014/forms"
                      xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
                      x:Class="MobileHMO.MainPage"
                      xmlns:pages="clr-namespace:MobileHMO">
             <MasterDetailPage.Master>
                 <ContentPage Title="Menu"
                          BackgroundColor="#e8e8e8">
    
                     <StackLayout Orientation="Vertical">
    
                         <StackLayout.Children >
                             <Label HorizontalTextAlignment="Center" Text="{Binding Header}" />
    
                             <Image HeightRequest="150" Source="{Binding Image}" Aspect="Fill" />
    
                             <Label HorizontalTextAlignment="Center" Text="{Binding Footer}" />
                         </StackLayout.Children>
    
                         <ListView x:Name="navigationDrawerList"
                           RowHeight="55"
                           SeparatorVisibility="Default"
                           BackgroundColor="#e8e8e8"
                           ItemSelected="OnMenuItemSelected">
    
                             <ListView.ItemTemplate>
                                 <DataTemplate>
                                     <ViewCell>
    
    
                                         <StackLayout VerticalOptions="FillAndExpand"
                                      Orientation="Horizontal"
                                      Padding="20,10,0,10"
                                      Spacing="20">
    
                                             <Image Source="{Binding Icon}"
                                  WidthRequest="40"
                                  HeightRequest="40"
                                  VerticalOptions="Start" />
    
                                             <Label Text="{Binding Title}"
                                  FontSize="Small"
                                  VerticalOptions="End"
                                  TextColor="Black"/>
                                         </StackLayout>
                                     </ViewCell>
                                 </DataTemplate>
                             </ListView.ItemTemplate>
                         </ListView>
    
                     </StackLayout>
    
                 </ContentPage>
             </MasterDetailPage.Master>
    
             <MasterDetailPage.Detail>
                 <NavigationPage>
    
                 </NavigationPage>
             </MasterDetailPage.Detail>
         </MasterDetailPage>
    
    
    
    公共部分类主页面:MasterDetailPage { 私人列表菜单列表

     public MainPage()
     {
         InitializeComponent();
         menuList = new List<MasterPageItem>();
    
    
         var page1 = new MasterPageItem() { Title = "Enrollee Profile", Icon = "enrollee.jpg", TargetType = typeof(view) };
         var page2 = new MasterPageItem() { Title = "Dependants", Icon = "dependant.jpg", TargetType = typeof(view2) };
         var page3 = new MasterPageItem() { Title = "Bill Limit", Icon = "bills.jpg", TargetType = typeof(view3) };
         };
    
         menuList.Add(page1);
         menuList.Add(page2);
         menuList.Add(page3);
         menuList.Add(page4);
         menuList.Add(page5);
         menuList.Add(page6);
         menuList.Add(page7);
         menuList.Add(page8);
         menuList.Add(page9);
    
         // Setting our list to be ItemSource for ListView in MainPage.xaml
         navigationDrawerList.ItemsSource = menuList;
         // Initial navigation, this can be used for our home page
         Detail = new NavigationPage((Page)Activator.CreateInstance(typeof(EnrolleeProfile)));
         this.BindingContext = new
         {
             Header = " Mobile",
             Image = "rina.png",
             //Footer = "         -------- Welcome   --------           "
             Footer = "Welcome "
         };
     }
    
    public主页()
    {
    初始化组件();
    menuList=新列表();
    var page1=new MasterPageItem(){Title=“Enrolleee Profile”,Icon=“Enrolleee.jpg”,TargetType=typeof(view)};
    var page2=new MasterPageItem(){Title=“dependents”,Icon=“dependent.jpg”,TargetType=typeof(view2)};
    var page3=new MasterPageItem(){Title=“Bill Limit”,Icon=“bills.jpg”,TargetType=typeof(view3)};
    };
    菜单列表添加(第1页);
    菜单列表添加(第2页);
    菜单列表添加(第3页);
    菜单列表添加(第4页);
    菜单列表添加(第5页);
    菜单列表添加(第6页);
    菜单列表添加(第7页);
    菜单列表添加(第8页);
    菜单列表添加(第9页);
    //将列表设置为MainPage.xaml中ListView的ItemSource
    navigationDrawerList.ItemsSource=menuList;
    //初始导航,这可以用于我们的主页
    Detail=newNavigationPage((Page)Activator.CreateInstance(typeof(EnrolleeProfile));
    this.BindingContext=new
    {
    Header=“Mobile”,
    Image=“rina.png”,
    //Footer=“-----------欢迎--------”
    Footer=“欢迎”
    };
    }
    
    }


  • 事实上,你的问题并不直截了当,但我应该能够回答。 你需要做一些事情来完成这项任务

  • 创建模型

  • 使用模板创建Masterdetail

  • 创建幻灯片页面。 删除它附带的所有页面,如MasterDetailPageMaster、MasterDetailPageDetail和MasterDetailPageMenuItem。之后,将“MasterDetailPage”更改为MainPage

         <MasterDetailPage xmlns="http://xamarin.com/schemas/2014/forms"
                      xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
                      x:Class="MobileHMO.MainPage"
                      xmlns:pages="clr-namespace:MobileHMO">
             <MasterDetailPage.Master>
                 <ContentPage Title="Menu"
                          BackgroundColor="#e8e8e8">
    
                     <StackLayout Orientation="Vertical">
    
                         <StackLayout.Children >
                             <Label HorizontalTextAlignment="Center" Text="{Binding Header}" />
    
                             <Image HeightRequest="150" Source="{Binding Image}" Aspect="Fill" />
    
                             <Label HorizontalTextAlignment="Center" Text="{Binding Footer}" />
                         </StackLayout.Children>
    
                         <ListView x:Name="navigationDrawerList"
                           RowHeight="55"
                           SeparatorVisibility="Default"
                           BackgroundColor="#e8e8e8"
                           ItemSelected="OnMenuItemSelected">
    
                             <ListView.ItemTemplate>
                                 <DataTemplate>
                                     <ViewCell>
    
    
                                         <StackLayout VerticalOptions="FillAndExpand"
                                      Orientation="Horizontal"
                                      Padding="20,10,0,10"
                                      Spacing="20">
    
                                             <Image Source="{Binding Icon}"
                                  WidthRequest="40"
                                  HeightRequest="40"
                                  VerticalOptions="Start" />
    
                                             <Label Text="{Binding Title}"
                                  FontSize="Small"
                                  VerticalOptions="End"
                                  TextColor="Black"/>
                                         </StackLayout>
                                     </ViewCell>
                                 </DataTemplate>
                             </ListView.ItemTemplate>
                         </ListView>
    
                     </StackLayout>
    
                 </ContentPage>
             </MasterDetailPage.Master>
    
             <MasterDetailPage.Detail>
                 <NavigationPage>
    
                 </NavigationPage>
             </MasterDetailPage.Detail>
         </MasterDetailPage>
    
    
    
    公共部分类主页面:MasterDetailPage { 私人列表菜单列表

     public MainPage()
     {
         InitializeComponent();
         menuList = new List<MasterPageItem>();
    
    
         var page1 = new MasterPageItem() { Title = "Enrollee Profile", Icon = "enrollee.jpg", TargetType = typeof(view) };
         var page2 = new MasterPageItem() { Title = "Dependants", Icon = "dependant.jpg", TargetType = typeof(view2) };
         var page3 = new MasterPageItem() { Title = "Bill Limit", Icon = "bills.jpg", TargetType = typeof(view3) };
         };
    
         menuList.Add(page1);
         menuList.Add(page2);
         menuList.Add(page3);
         menuList.Add(page4);
         menuList.Add(page5);
         menuList.Add(page6);
         menuList.Add(page7);
         menuList.Add(page8);
         menuList.Add(page9);
    
         // Setting our list to be ItemSource for ListView in MainPage.xaml
         navigationDrawerList.ItemsSource = menuList;
         // Initial navigation, this can be used for our home page
         Detail = new NavigationPage((Page)Activator.CreateInstance(typeof(EnrolleeProfile)));
         this.BindingContext = new
         {
             Header = " Mobile",
             Image = "rina.png",
             //Footer = "         -------- Welcome   --------           "
             Footer = "Welcome "
         };
     }
    
    public主页()
    {
    初始化组件();
    menuList=新列表();
    var page1=new MasterPageItem(){Title=“Enrolleee Profile”,Icon=“Enrolleee.jpg”,TargetType=typeof(view)};
    var page2=new MasterPageItem(){Title=“dependents”,Icon=“dependent.jpg”,TargetType=typeof(view2)};
    var page3=new MasterPageItem(){Title=“Bill Limit”,Icon=“bills.jpg”,TargetType=typeof(view3)};
    };
    菜单列表添加(第1页);
    菜单列表添加(第2页);
    菜单列表添加(第3页);
    菜单列表添加(第4页);
    菜单列表添加(第5页);
    菜单列表添加(第6页);
    菜单列表添加(第7页);
    菜单列表添加(第8页);
    菜单列表添加(第9页);