スクロールは確かにこのアプローチの問題であり、2つのコントロールはうまく組み合わせません。
見出しのあるセクションが必要な場合は、グループ化されたListViewを使用するのが最もよい方法です。
データを最初にグループ化する必要があります。以下は例です。
public class PersonList : List<Person>
{
public string Heading { get; set; }
public List<Person> Persons => this;
}
ListViewで、IsGroupingEnabledを使用してグループ化を有効にしてから、GroupHeaderTemplateを提供する必要があります。
<ListView ItemsSource="{Binding MyGroupedData}"
IsGroupingEnabled="true">
<ListView.GroupHeaderTemplate>
<DataTemplate>
<ViewCell>
<Label Text="{Binding Heading}" />
</ViewCell>
</DataTemplate>
</ListView.GroupHeaderTemplate>
<ListView.ItemTemplate>
<DataTemplate>
<ViewCell>
</ViewCell>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
例から撮影:あなたが固定ListView.RowHeight
を指定し、ヘッダーやフッターを使用しない場合はXamarin Forms ListView Grouping
ListViewグループの外観がTableViewセクションと異なるため、アプリケーションの他の部分でTableViewsを使用すると、ListViewハックのページのUIが矛盾します。基本的な問題は、2つのセクションのデータ収集が根本的に異なり、グループ化イディオムが伝えるように設計されているものとは逆のことです。 –
ListViewの見出しのルック・アンド・フィールを変更することができます。異なる種類のデータをグループ化する場合、DataTemplateSelectorを使用できます。それ以外の場合は、カスタムStackLayoutまたはGrid、またはカスタムTableViewCellを作成し、ContextActionsを使用してその機能全体を手動で作成することもできます。 –
どちらのオプションも簡単ではないようです。 :-(すべてのプラットフォームとOSバージョンの間で、TableViewセクションの見出しのネイティブUIを模倣しようとすると、多くの作業のように聞こえるようになるでしょう。 –