initial commit2

This commit is contained in:
Name Surname 2025-02-27 15:27:30 +03:00
parent 50bc2aa469
commit 7ded5a7083
8 changed files with 207 additions and 0 deletions

16
FlyoutPage1.xaml Normal file
View File

@ -0,0 +1,16 @@
<?xml version="1.0" encoding="utf-8" ?>
<FlyoutPage xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
x:Class="MobileAPP.FlyoutPage1"
xmlns:pages="clr-namespace:MobileAPP">
<FlyoutPage.Flyout>
<pages:FlyoutPage1Flyout x:Name="FlyoutPage" />
</FlyoutPage.Flyout>
<FlyoutPage.Detail>
<NavigationPage>
<x:Arguments>
<pages:FlyoutPage1Detail />
</x:Arguments>
</NavigationPage>
</FlyoutPage.Detail>
</FlyoutPage>

36
FlyoutPage1.xaml.cs Normal file
View File

@ -0,0 +1,36 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Xamarin.Forms;
using Xamarin.Forms.Xaml;
namespace MobileAPP
{
[XamlCompilation(XamlCompilationOptions.Compile)]
public partial class FlyoutPage1 : FlyoutPage
{
public FlyoutPage1()
{
InitializeComponent();
FlyoutPage.ListView.ItemSelected += ListView_ItemSelected;
}
private void ListView_ItemSelected(object sender, SelectedItemChangedEventArgs e)
{
var item = e.SelectedItem as FlyoutPage1FlyoutMenuItem;
if (item == null)
return;
var page = (Page)Activator.CreateInstance(item.TargetType);
page.Title = item.Title;
Detail = new NavigationPage(page);
IsPresented = false;
FlyoutPage.ListView.SelectedItem = null;
}
}
}

9
FlyoutPage1Detail.xaml Normal file
View File

@ -0,0 +1,9 @@
<?xml version="1.0" encoding="utf-8" ?>
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
x:Class="MobileAPP.FlyoutPage1Detail"
Title="Detail">
<StackLayout Padding="10">
<Label Text="This is a detail page. To get the 'triple' line icon on each platform add a icon to each platform and update the 'Flyout' page with an Icon that references it."/>
</StackLayout>
</ContentPage>

20
FlyoutPage1Detail.xaml.cs Normal file
View File

@ -0,0 +1,20 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Xamarin.Forms;
using Xamarin.Forms.Xaml;
namespace MobileAPP
{
[XamlCompilation(XamlCompilationOptions.Compile)]
public partial class FlyoutPage1Detail : ContentPage
{
public FlyoutPage1Detail()
{
InitializeComponent();
}
}
}

45
FlyoutPage1Flyout.xaml Normal file
View File

@ -0,0 +1,45 @@
<?xml version="1.0" encoding="utf-8" ?>
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
x:Class="MobileAPP.FlyoutPage1Flyout"
Title="Flyout">
<StackLayout>
<ListView x:Name="MenuItemsListView"
SeparatorVisibility="None"
HasUnevenRows="true"
ItemsSource="{Binding MenuItems}">
<ListView.Header>
<Grid BackgroundColor="#03A9F4">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="10"/>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="10"/>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="30"/>
<RowDefinition Height="80"/>
<RowDefinition Height="Auto"/>
<RowDefinition Height="10"/>
</Grid.RowDefinitions>
<Label
Grid.Column="1"
Grid.Row="2"
Text="AppName"
Style="{DynamicResource SubtitleStyle}"/>
</Grid>
</ListView.Header>
<ListView.ItemTemplate>
<DataTemplate>
<ViewCell>
<StackLayout Padding="15,10" HorizontalOptions="FillAndExpand">
<Label VerticalOptions="FillAndExpand"
VerticalTextAlignment="Center"
Text="{Binding Title}"
FontSize="24"/>
</StackLayout>
</ViewCell>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
</StackLayout>
</ContentPage>

56
FlyoutPage1Flyout.xaml.cs Normal file
View File

@ -0,0 +1,56 @@
using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.ComponentModel;
using System.Linq;
using System.Runtime.CompilerServices;
using System.Text;
using System.Threading.Tasks;
using Xamarin.Forms;
using Xamarin.Forms.Xaml;
namespace MobileAPP
{
[XamlCompilation(XamlCompilationOptions.Compile)]
public partial class FlyoutPage1Flyout : ContentPage
{
public ListView ListView;
public FlyoutPage1Flyout()
{
InitializeComponent();
BindingContext = new FlyoutPage1FlyoutViewModel();
ListView = MenuItemsListView;
}
private class FlyoutPage1FlyoutViewModel : INotifyPropertyChanged
{
public ObservableCollection<FlyoutPage1FlyoutMenuItem> MenuItems { get; set; }
public FlyoutPage1FlyoutViewModel()
{
MenuItems = new ObservableCollection<FlyoutPage1FlyoutMenuItem>(new[]
{
new FlyoutPage1FlyoutMenuItem { Id = 0, Title = "Page 1" },
new FlyoutPage1FlyoutMenuItem { Id = 1, Title = "Page 2" },
new FlyoutPage1FlyoutMenuItem { Id = 2, Title = "Page 3" },
new FlyoutPage1FlyoutMenuItem { Id = 3, Title = "Page 4" },
new FlyoutPage1FlyoutMenuItem { Id = 4, Title = "Page 5" },
});
}
#region INotifyPropertyChanged Implementation
public event PropertyChangedEventHandler PropertyChanged;
void OnPropertyChanged([CallerMemberName] string propertyName = "")
{
if (PropertyChanged == null)
return;
PropertyChanged.Invoke(this, new PropertyChangedEventArgs(propertyName));
}
#endregion
}
}
}

View File

@ -0,0 +1,20 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace MobileAPP
{
public class FlyoutPage1FlyoutMenuItem
{
public FlyoutPage1FlyoutMenuItem()
{
TargetType = typeof(FlyoutPage1FlyoutMenuItem);
}
public int Id { get; set; }
public string Title { get; set; }
public Type TargetType { get; set; }
}
}

View File

@ -6,6 +6,11 @@
<ActiveDebugProfile>Windows Machine</ActiveDebugProfile> <ActiveDebugProfile>Windows Machine</ActiveDebugProfile>
</PropertyGroup> </PropertyGroup>
<ItemGroup> <ItemGroup>
<Compile Update="FlyoutPage1FlyoutMenuItem.cs">
<SubType>Code</SubType>
</Compile>
</ItemGroup>
<ItemGroup>
<None Update="App.xaml"> <None Update="App.xaml">
<SubType>Designer</SubType> <SubType>Designer</SubType>
</None> </None>