|
public partial class GroupingPage : ContentPage
{
VisualContainer container;
public GroupingPage()
{
InitializeComponent();
container = listView.GetVisualContainer();
listView.ScrollStateChanged += ListView_ScrollStateChanged;
}
private void ListView_ScrollStateChanged(object sender, ScrollStateChangedEventArgs e)
{
if (e.ScrollState == ScrollState.Idle)
{
var lines = container.ScrollRows.GetVisibleLines();
if (lines[0].IsClipped)
{
if (lines[0].ScrollOffset < (listView.ItemSize / 2))
{
listView.LayoutManager.ScrollToRowIndex(lines[0].LineIndex, true);
}
else
listView.LayoutManager.ScrollToRowIndex(lines[1].LineIndex, true);
}
}
}
} |