LeoAndo / xamarin-forms-training

traning for Xamarin.Forms
0 stars 1 forks source link

CollectionView #76

Open LeoAndo opened 3 years ago

LeoAndo commented 3 years ago

xamarin.formsで提供されるCollectionView

これらのViewにはスクロール機能が組み込まれている。

CollectionViewのItemsSourceプロパティとObservableCollectionオブジェクトについて

https://github.com/LeoAndo/xamarin-forms-app-templates/pull/5/files#r713905696 の実装メモを参照。

refs

https://docs.microsoft.com/ja-jp/xamarin/xamarin-forms/creating-mobile-apps-xamarin-forms/summaries/chapter19

LeoAndo commented 3 years ago

Picker

Pickerとイベント処理 Pickerの初期値設定

refs

https://docs.microsoft.com/ja-jp/xamarin/xamarin-forms/creating-mobile-apps-xamarin-forms/summaries/chapter19#program-options-with-picker

LeoAndo commented 3 years ago

ListView

ListViewは全てのセルインスタンスを一度に作成しない。パフォーマンス上の理由により作成するタイミングは、セル要素の表示が必要になった時。

refs

https://docs.microsoft.com/ja-jp/xamarin/xamarin-forms/creating-mobile-apps-xamarin-forms/summaries/chapter19#rendering-data-with-listview

LeoAndo commented 3 years ago

TableView

TableViewは、異なる型の要素からなるリストを表示する。

PR

https://github.com/LeoAndo/xamarin-forms-training/pull/84 https://github.com/LeoAndo/xamarin-forms-training/pull/85

refs

https://docs.microsoft.com/ja-jp/xamarin/xamarin-forms/creating-mobile-apps-xamarin-forms/summaries/chapter19#the-tableview-and-its-intents

LeoAndo commented 3 years ago

Cell

Cellで使えるクラスは以下。

HasUnevenRowsを使用してセルの高さ調整をする

HasUnevenRowsプロパティの目的は、ListViewのセルの高さは均一ではないケースに対処できる。 セルの高さを設定する方法としてはHasUnevenRowsプロパティはRowHeightプロパティを使用したセルの高さ設定よりも処理パフォーマンスが悪い。

結論: ViewCellを使用する場合はRowHeightプロパティに最適な値を設定する。 それが不可能な場合にのみ、HasUnevenRowsプロパティを使用する

PR

LeoAndo commented 3 years ago

ListViewの要素をグループ化

ListViewのグループ化をする際に必要になるプロパティは以下。

参考: https://github.com/xamarin/xamarin-forms-book-samples/blob/master/Chapter19/ColorGroupList/ColorGroupList/ColorGroupList/ColorGroupListPage.xaml#L15:L17

LeoAndo commented 3 years ago

カスタムグループヘッダー

グループヘッダーをカスタマイズしたい場合は、 GroupDisplayBindingプロパティを使用せずに、GroupHeaderTemplateプロパティにDataTemplateを設定することで実現可能。

LeoAndo commented 3 years ago

リストのPull To Refresh 

ListViewのIsPullToRefreshプロパティがtrueに設定されていて、ユーザーがListViewを下に向かってスワイプした場合ListViewはそれに応じてRefreshCommandプロパティにバインドされているICommandオブジェクトのExecuteメソッドを呼び出す。 また、ListViewはIsRefreshプロパティをtrueに設定し、リストデータの再取得を示す何らかのアニメーションを表示する。

PR