我想在导航抽屉中显示一项的子菜单。我想为导航抽屉中的一项添加5个子菜单项。
添加项目子菜单的最佳和最简便的方法是哪一种?我想在Android和IOS应用程序中使用此子菜单。
MasterDetailPage.cs:
public MainMasterDetailPage()
{
InitializeComponent();
NavigationPage.SetHasBackButton(this, false);
NavigationPage.SetHasNavigationBar(this, false);
navigationDrawerList.ItemsSource = GetMasterPageLists();
this.IsPresented = false;
Detail = new NavigationPage(new DashboardTabbedPage());
}
private void OnMenuSelected(object sender, SelectedItemChangedEventArgs e)
{
var item = (MasterPageList)e.SelectedItem;
if (item.Title == "Settings")
{
}
else
{
string dbPath = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.Personal), "vssSQLite.db3");
SQLiteConnection db = new SQLiteConnection(dbPath);
db.DropTable<LoginSqlLiteM>();
Application.Current.MainPage.Navigation.PushAsync(new MainPage());
}
}
List<MasterPageList> GetMasterPageLists()
{
return new List<MasterPageList>
{
new MasterPageList() { Title = "Settings", Icon = "settings.png" },
new MasterPageList() { Title = "Logout", Icon = "logout.png" },
};
}
}
MasterDetailPage.Xaml:
<MasterDetailPage xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
xmlns:local="clr-namespace:VSS.MasterPages"
xmlns:local1="clr-namespace:VSS.Pages"
IsPresented="False"
x:Class="VSS.MasterPages.MainMasterDetailPage">
<MasterDetailPage.Master>
<ContentPage Title="☰">
<StackLayout BackgroundColor="#ffffff">
<StackLayout Margin="25,10,25,0" Padding="0,15,0,15">
<Image Source="VSSIcon.png" HorizontalOptions="Center" HeightRequest="80" WidthRequest="80"></Image>
<Label Text="Sched.ly" TextColor="#1CA9FF" FontSize="Large" HorizontalOptions="CenterAndExpand"></Label>
<Label Text="Always on Time " TextColor="#1CA9FF" FontSize="Large" FontAttributes="Italic" HorizontalOptions="CenterAndExpand"></Label>
</StackLayout>
<ListView x:Name="navigationDrawerList"
RowHeight="60"
SeparatorVisibility="None"
ItemSelected="OnMenuSelected"
BackgroundColor="#2196F3">
<ListView.ItemTemplate>
<DataTemplate>
<ViewCell>
<StackLayout VerticalOptions="FillAndExpand"
Orientation="Horizontal"
Padding="20,10,0,10"
Spacing="20">
<Image Source="{Binding Icon}"
WidthRequest="30"
HeightRequest="30"
VerticalOptions="Center" />
<Label Text="{Binding Title}"
FontSize="Medium"
VerticalOptions="Center"
TextColor="White"/>
</StackLayout>
</ViewCell>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
</StackLayout>
</ContentPage>
</MasterDetailPage.Master>
<MasterDetailPage.Detail>
<NavigationPage>
<x:Arguments>
<local:DashboardTabbedPage/>
</x:Arguments>
</NavigationPage>
</MasterDetailPage.Detail>
</MasterDetailPage>
我想显示Settings
项目的子菜单项目。我该如何为settings
项创建子菜单?
救救我。
答案 0 :(得分:0)
您有两个选项,可以使用可绑定布局并为其设置填充,也可以嵌套一个ListView / Collection View。
如果要使用它,请参考我的blog here to know how to use Bindable Layout。
否则,如果您的要求是像可扩展选项一样使用它,那么请参考以下链接,这些链接可能会帮助您满足要求。
答案 1 :(得分:0)
您可以尝试将Listview与分组头(如james did in here)一起使用