adjust UI
This commit is contained in:
@ -1,52 +0,0 @@
|
||||
<?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="Gallery.Views.AboutPage"
|
||||
xmlns:vm="clr-namespace:Gallery.ViewModels"
|
||||
Title="{Binding Title}">
|
||||
|
||||
<ContentPage.BindingContext>
|
||||
<vm:AboutViewModel />
|
||||
</ContentPage.BindingContext>
|
||||
|
||||
<ContentPage.Resources>
|
||||
<ResourceDictionary>
|
||||
<Color x:Key="Accent">#96d1ff</Color>
|
||||
</ResourceDictionary>
|
||||
</ContentPage.Resources>
|
||||
|
||||
<Grid>
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition Height="Auto" />
|
||||
<RowDefinition Height="*" />
|
||||
</Grid.RowDefinitions>
|
||||
<StackLayout BackgroundColor="{StaticResource Accent}" VerticalOptions="FillAndExpand" HorizontalOptions="Fill">
|
||||
<StackLayout Orientation="Horizontal" HorizontalOptions="Center" VerticalOptions="Center">
|
||||
<ContentView Padding="0,40,0,40" VerticalOptions="FillAndExpand">
|
||||
<Image Source="xamarin_logo.png" VerticalOptions="Center" HeightRequest="64" />
|
||||
</ContentView>
|
||||
</StackLayout>
|
||||
</StackLayout>
|
||||
<ScrollView Grid.Row="1">
|
||||
<StackLayout Orientation="Vertical" Padding="30,24,30,24" Spacing="10">
|
||||
<Label Text="Start developing now" FontSize="Title"/>
|
||||
<Label Text="Make changes to your XAML file and save to see your UI update in the running app with XAML Hot Reload. Give it a try!" FontSize="16" Padding="0,0,0,0"/>
|
||||
<Label FontSize="16" Padding="0,24,0,0">
|
||||
<Label.FormattedText>
|
||||
<FormattedString>
|
||||
<FormattedString.Spans>
|
||||
<Span Text="Learn more at "/>
|
||||
<Span Text="https://aka.ms/xamarin-quickstart" FontAttributes="Bold"/>
|
||||
</FormattedString.Spans>
|
||||
</FormattedString>
|
||||
</Label.FormattedText>
|
||||
</Label>
|
||||
<Button Margin="0,10,0,0" Text="Learn more"
|
||||
Command="{Binding OpenWebCommand}"
|
||||
BackgroundColor="{DynamicResource Primary}"
|
||||
TextColor="White" />
|
||||
</StackLayout>
|
||||
</ScrollView>
|
||||
</Grid>
|
||||
|
||||
</ContentPage>
|
@ -1,31 +0,0 @@
|
||||
using System;
|
||||
using System.ComponentModel;
|
||||
using Gallery.Util;
|
||||
using Xamarin.Forms;
|
||||
using Xamarin.Forms.Xaml;
|
||||
|
||||
namespace Gallery.Views
|
||||
{
|
||||
public partial class AboutPage : ContentPage
|
||||
{
|
||||
public AboutPage()
|
||||
{
|
||||
InitializeComponent();
|
||||
}
|
||||
|
||||
protected override async void OnAppearing()
|
||||
{
|
||||
base.OnAppearing();
|
||||
|
||||
var result = await App.GallerySources[0].GetRecentItemsAsync(1);
|
||||
if (result != null)
|
||||
{
|
||||
for (var i = 0; i < result.Length; i++)
|
||||
{
|
||||
var item = result[i];
|
||||
Log.Print($"id: {item.Id}, url: {item.RawUrl}");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
31
Gallery.Share/Views/GalleryPage.xaml
Normal file
31
Gallery.Share/Views/GalleryPage.xaml
Normal file
@ -0,0 +1,31 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<ui:GalleryCollectionPage
|
||||
xmlns="http://xamarin.com/schemas/2014/forms"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
|
||||
xmlns:ui="clr-namespace:Gallery.Resources.UI"
|
||||
x:Class="Gallery.Views.GalleryPage"
|
||||
x:Name="yanderePage"
|
||||
BackgroundColor="{DynamicResource WindowColor}"
|
||||
BindingContext="{x:Reference yanderePage}">
|
||||
<ContentPage.Content>
|
||||
<Grid>
|
||||
<ScrollView x:Name="scrollView" Scrolled="ScrollView_Scrolled"
|
||||
HorizontalOptions="Fill" HorizontalScrollBarVisibility="Never">
|
||||
<StackLayout>
|
||||
<ActivityIndicator x:Name="activityLoading" Margin="0, -40, 0, 0"
|
||||
HeightRequest="40"
|
||||
IsRunning="{Binding IsLoading}"
|
||||
IsVisible="{Binding IsLoading}"/>
|
||||
<ui:FlowLayout ItemsSource="{Binding Gallery}"
|
||||
MaxHeightChanged="FlowLayout_MaxHeightChanged"
|
||||
HorizontalOptions="Fill" Column="{Binding Columns}"
|
||||
Margin="16" RowSpacing="16" ColumnSpacing="16"
|
||||
ItemTemplate="{StaticResource cardView}"/>
|
||||
<ActivityIndicator x:Name="activityBottomLoading" Margin="0, -10, 0, 16"
|
||||
IsRunning="{Binding IsBottomLoading}"
|
||||
IsVisible="{Binding IsBottomLoading}"/>
|
||||
</StackLayout>
|
||||
</ScrollView>
|
||||
</Grid>
|
||||
</ContentPage.Content>
|
||||
</ui:GalleryCollectionPage>
|
66
Gallery.Share/Views/GalleryPage.xaml.cs
Normal file
66
Gallery.Share/Views/GalleryPage.xaml.cs
Normal file
@ -0,0 +1,66 @@
|
||||
using System.Collections.Generic;
|
||||
using System.Threading.Tasks;
|
||||
using Gallery.Resources.UI;
|
||||
using Gallery.Util;
|
||||
using Gallery.Util.Interface;
|
||||
using Gallery.Util.Model;
|
||||
using Xamarin.Forms;
|
||||
|
||||
namespace Gallery.Views
|
||||
{
|
||||
public partial class GalleryPage : GalleryCollectionPage
|
||||
{
|
||||
private int currentPage;
|
||||
|
||||
public GalleryPage(IGallerySource source) : base(source)
|
||||
{
|
||||
Resources.Add("cardView", GetCardViewTemplate());
|
||||
InitializeComponent();
|
||||
|
||||
currentPage = 1;
|
||||
}
|
||||
|
||||
protected override ActivityIndicator LoadingIndicator => activityLoading;
|
||||
|
||||
protected override void OnAppearing()
|
||||
{
|
||||
if (currentPage != 1 && Gallery == null)
|
||||
{
|
||||
currentPage = 1;
|
||||
}
|
||||
base.OnAppearing();
|
||||
}
|
||||
|
||||
protected override async Task<GalleryItem[]> DoloadGalleryData(bool force)
|
||||
{
|
||||
var result = await source.GetRecentItemsAsync(currentPage);
|
||||
return result;
|
||||
}
|
||||
|
||||
protected override IEnumerable<GalleryItem> DoGetGalleryList(GalleryItem[] data, out int tag)
|
||||
{
|
||||
tag = currentPage;
|
||||
return data;
|
||||
}
|
||||
|
||||
private void FlowLayout_MaxHeightChanged(object sender, HeightEventArgs e)
|
||||
{
|
||||
SetOffset(e.ContentHeight - scrollView.Bounds.Height - SCROLL_OFFSET);
|
||||
}
|
||||
|
||||
protected override bool CheckRefresh()
|
||||
{
|
||||
currentPage++;
|
||||
#if DEBUG
|
||||
Log.Print($"loading page: {currentPage}");
|
||||
#endif
|
||||
return true;
|
||||
}
|
||||
|
||||
private void ScrollView_Scrolled(object sender, ScrolledEventArgs e)
|
||||
{
|
||||
var y = e.ScrollY;
|
||||
OnScrolled(y);
|
||||
}
|
||||
}
|
||||
}
|
@ -1,14 +0,0 @@
|
||||
<?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="Gallery.Views.ItemDetailPage"
|
||||
Title="{Binding Title}">
|
||||
|
||||
<StackLayout Spacing="20" Padding="15">
|
||||
<Label Text="Text:" FontSize="Medium" />
|
||||
<Label Text="{Binding Text}" FontSize="Small"/>
|
||||
<Label Text="Description:" FontSize="Medium" />
|
||||
<Label Text="{Binding Description}" FontSize="Small"/>
|
||||
</StackLayout>
|
||||
|
||||
</ContentPage>
|
@ -1,15 +0,0 @@
|
||||
using System.ComponentModel;
|
||||
using Xamarin.Forms;
|
||||
using Gallery.ViewModels;
|
||||
|
||||
namespace Gallery.Views
|
||||
{
|
||||
public partial class ItemDetailPage : ContentPage
|
||||
{
|
||||
public ItemDetailPage()
|
||||
{
|
||||
InitializeComponent();
|
||||
BindingContext = new ItemDetailViewModel();
|
||||
}
|
||||
}
|
||||
}
|
@ -1,44 +0,0 @@
|
||||
<?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="Gallery.Views.ItemsPage"
|
||||
Title="{Binding Title}"
|
||||
xmlns:local="clr-namespace:Gallery.ViewModels"
|
||||
xmlns:model="clr-namespace:Gallery.Models"
|
||||
x:Name="BrowseItemsPage">
|
||||
|
||||
<ContentPage.ToolbarItems>
|
||||
<ToolbarItem Text="Add" Command="{Binding AddItemCommand}" />
|
||||
</ContentPage.ToolbarItems>
|
||||
<!--
|
||||
x:DataType enables compiled bindings for better performance and compile time validation of binding expressions.
|
||||
https://docs.microsoft.com/xamarin/xamarin-forms/app-fundamentals/data-binding/compiled-bindings
|
||||
-->
|
||||
<RefreshView x:DataType="local:ItemsViewModel" Command="{Binding LoadItemsCommand}" IsRefreshing="{Binding IsBusy, Mode=TwoWay}">
|
||||
<CollectionView x:Name="ItemsListView"
|
||||
ItemsSource="{Binding Items}"
|
||||
SelectionMode="None">
|
||||
<CollectionView.ItemTemplate>
|
||||
<DataTemplate>
|
||||
<StackLayout Padding="10" x:DataType="model:Item">
|
||||
<Label Text="{Binding Text}"
|
||||
LineBreakMode="NoWrap"
|
||||
Style="{DynamicResource ListItemTextStyle}"
|
||||
FontSize="16" />
|
||||
<Label Text="{Binding Description}"
|
||||
LineBreakMode="NoWrap"
|
||||
Style="{DynamicResource ListItemDetailTextStyle}"
|
||||
FontSize="13" />
|
||||
<StackLayout.GestureRecognizers>
|
||||
<TapGestureRecognizer
|
||||
NumberOfTapsRequired="1"
|
||||
Command="{Binding Source={RelativeSource AncestorType={x:Type local:ItemsViewModel}}, Path=ItemTapped}"
|
||||
CommandParameter="{Binding .}">
|
||||
</TapGestureRecognizer>
|
||||
</StackLayout.GestureRecognizers>
|
||||
</StackLayout>
|
||||
</DataTemplate>
|
||||
</CollectionView.ItemTemplate>
|
||||
</CollectionView>
|
||||
</RefreshView>
|
||||
</ContentPage>
|
@ -1,33 +0,0 @@
|
||||
using System;
|
||||
using System.ComponentModel;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using Xamarin.Forms;
|
||||
using Xamarin.Forms.Xaml;
|
||||
|
||||
using Gallery.Models;
|
||||
using Gallery.Views;
|
||||
using Gallery.ViewModels;
|
||||
|
||||
namespace Gallery.Views
|
||||
{
|
||||
public partial class ItemsPage : ContentPage
|
||||
{
|
||||
ItemsViewModel _viewModel;
|
||||
|
||||
public ItemsPage()
|
||||
{
|
||||
InitializeComponent();
|
||||
|
||||
BindingContext = _viewModel = new ItemsViewModel();
|
||||
}
|
||||
|
||||
protected override void OnAppearing()
|
||||
{
|
||||
base.OnAppearing();
|
||||
_viewModel.OnAppearing();
|
||||
}
|
||||
}
|
||||
}
|
@ -1,14 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8" ?>
|
||||
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
|
||||
xmlns:d="http://xamarin.com/schemas/2014/forms/design"
|
||||
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
||||
mc:Ignorable="d"
|
||||
x:Class="Gallery.Views.LoginPage"
|
||||
Shell.NavBarIsVisible="False">
|
||||
<ContentPage.Content>
|
||||
<StackLayout Padding="10,0,10,0" VerticalOptions="Center">
|
||||
<Button VerticalOptions="Center" Text="Login" Command="{Binding LoginCommand}"/>
|
||||
</StackLayout>
|
||||
</ContentPage.Content>
|
||||
</ContentPage>
|
@ -1,21 +0,0 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using Gallery.ViewModels;
|
||||
using Xamarin.Forms;
|
||||
using Xamarin.Forms.Xaml;
|
||||
|
||||
namespace Gallery.Views
|
||||
{
|
||||
[XamlCompilation(XamlCompilationOptions.Compile)]
|
||||
public partial class LoginPage : ContentPage
|
||||
{
|
||||
public LoginPage()
|
||||
{
|
||||
InitializeComponent();
|
||||
this.BindingContext = new LoginViewModel();
|
||||
}
|
||||
}
|
||||
}
|
@ -1,22 +0,0 @@
|
||||
<?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="Gallery.Views.NewItemPage"
|
||||
Shell.PresentationMode="ModalAnimated"
|
||||
Title="New Item"
|
||||
xmlns:ios="clr-namespace:Xamarin.Forms.PlatformConfiguration.iOSSpecific;assembly=Xamarin.Forms.Core"
|
||||
ios:Page.UseSafeArea="true">
|
||||
<ContentPage.Content>
|
||||
<StackLayout Spacing="3" Padding="15">
|
||||
<Label Text="Text" FontSize="Medium" />
|
||||
<Entry Text="{Binding Text, Mode=TwoWay}" FontSize="Medium" />
|
||||
<Label Text="Description" FontSize="Medium" />
|
||||
<Editor Text="{Binding Description, Mode=TwoWay}" AutoSize="TextChanges" FontSize="Medium" Margin="0" />
|
||||
<StackLayout Orientation="Horizontal">
|
||||
<Button Text="Cancel" Command="{Binding CancelCommand}" HorizontalOptions="FillAndExpand"></Button>
|
||||
<Button Text="Save" Command="{Binding SaveCommand}" HorizontalOptions="FillAndExpand"></Button>
|
||||
</StackLayout>
|
||||
</StackLayout>
|
||||
</ContentPage.Content>
|
||||
|
||||
</ContentPage>
|
@ -1,22 +0,0 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel;
|
||||
using Xamarin.Forms;
|
||||
using Xamarin.Forms.Xaml;
|
||||
|
||||
using Gallery.Models;
|
||||
using Gallery.ViewModels;
|
||||
|
||||
namespace Gallery.Views
|
||||
{
|
||||
public partial class NewItemPage : ContentPage
|
||||
{
|
||||
public Item Item { get; set; }
|
||||
|
||||
public NewItemPage()
|
||||
{
|
||||
InitializeComponent();
|
||||
BindingContext = new NewItemViewModel();
|
||||
}
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user