Top Banner
Сложный интерфейс в Xamarin.Forms Вячеслав Черников
12

Cложные интерфейсы в Xamarin.Forms

Apr 06, 2017

Download

Mobile

Binwell
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Cложные интерфейсы в Xamarin.Forms

Сложный интерфейс в Xamarin.Forms

Вячеслав Черников

Page 2: Cложные интерфейсы в Xamarin.Forms

О чем?

Идем от задачи

Виртуализация коллекции

Подключаем FastGrid

Дорабатываем FastGrid

Тюнинг ячеек

Результат

Page 3: Cложные интерфейсы в Xamarin.Forms
Page 4: Cложные интерфейсы в Xamarin.Forms

Виртуализация коллекций

Page 5: Cложные интерфейсы в Xamarin.Forms

Подключаем FastGrid

https://github.com/twintechs/TwinTechsFormsLib

UICollectionView для iOS

RecyclerView для Android

Page 6: Cложные интерфейсы в Xamarin.Forms

FastGrid, компоновка ячеекВАЖНО: Поддержка горизонтальной и вертикальной ориентации

iOSLayout на базе UICollectionViewFlowLayout

AndroidLayout на базе GridLayoutManager с использованием Grid Span

Page 7: Cложные интерфейсы в Xamarin.Forms

FastGrid, Template Selectorvar templateSelector = new FastGridTemplateSelector();var productWidth = screenWidth / 3 - 1;templateSelector.DataTemplates.AddRange(new[] { new FastGridDataTemplate(typeof (ProductModel).Name, typeof (ProductViewCell), new Size(productWidth, 120)), new FastGridDataTemplate(typeof (string).Name, typeof (LoadingShopViewCell), new Size(screenWidth, 140))});templateSelector.Prepare();

Page 8: Cложные интерфейсы в Xamarin.Forms

FastGrid, Pull-To-RefreshiOSСтандартный UIRefreshControl

AndroidСтандартный SwipeRefreshLayout

Page 9: Cложные интерфейсы в Xamarin.Forms

FastGrid, Load moreВариант 1. Обновление всей таблицы

Вариант 2. Использование ObservableRangeCollection

ObservableRangeCollection<T>:Collection<T>,INotifyCollectionChanged

NotifyCollectionChangedAction.AddNotifyCollectionChangedAction.RemoveNotifyCollectionChangedAction.Reset

Page 10: Cложные интерфейсы в Xamarin.Forms

Тюнинг ячеек, свой Layout

public enum ProductLayoutViewTypes { Image, Price, OriginalPrice, Discount, }

Page 11: Cложные интерфейсы в Xamarin.Forms

ДЕМО

Page 12: Cложные интерфейсы в Xamarin.Forms

1. FastGrid2. Тюнинг коллекции3. Тюнинг ячеек

Вячеслав Черников[email protected]

Сложные интерфейсы в XF