如何在xamarin中设计滑动菜单
大家早上好 我是xamarin.forms的新手,我正在使用visual studio 2017开发一款跨平台的苹果手机 我创建了一个母版详细信息页面,以便使用幻灯片导航菜单 幻灯片导航功能正常,但我需要对其进行增强 下面是我所做工作的屏幕截图 下面是我的代码如何在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
<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;
}
}
下面是我预期的输出图像
事实上,你的问题并不直截了当,但我应该能够回答。 你需要做一些事情来完成这项任务
<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=“欢迎”
};
}
}
事实上,你的问题并不直截了当,但我应该能够回答。 你需要做一些事情来完成这项任务
<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页);