#xaml #xamarin.forms
#xaml #xamarin.forms
Вопрос:
Я хочу перезагрузить элементы в свой flowlistview, когда он достиг своего дна. поэтому мне понадобится функция, которая запускается после достижения конца.
У меня настроен этот flowlistview:
<flv:FlowListView
Grid.Column="1"
FlowItemAppearing="listview_allAds_FlowItemAppearing"
FlowColumnCount="2"
IsPullToRefreshEnabled="True"
Refreshing="listview_allAds_Refreshing"
Margin="0,10,0,0"
VerticalScrollBarVisibility="Never"
FlowItemTapped="listview_allAds_FlowItemTapped"
HasUnevenRows="True"
x:Name="listview_allAds" >
<flv:FlowListView.FlowColumnTemplate>
<DataTemplate>
<ContentView Padding="4,3,3,4"> <!--only way to set padding-->
<Frame BorderColor="#ffffff"
HasShadow="True"
Padding="0"
CornerRadius="{OnPlatform Android=5, iOS=5}">
<Grid ...>
</Frame>
</ContentView>
</DataTemplate>
</flv:FlowListView.FlowColumnTemplate>
</flv:FlowListView>
Я понимаю, что вы можете многое сделать с помощью «команд», но я не уверен, как это сделать.
Можете ли вы мне здесь помочь?
Спасибо!
Ответ №1:
Вы могли бы использовать FlowItemAppearing
. Событие, которое вы установили в своем коде, работает хорошо.
async void listview_allAds_ItemAppearing(object sender, ItemVisibilityEventArgs e)
{
if (e.ItemIndex == infos.Count/2)//2 is the FlowColumnCount of your FlowListView
{
await DisplayAlert("Alert", "Scrolled to the bottom", "OK");
}
}
Комментарии:
1. ItemIndex всегда будет смещен на list.count . так что либо добавьте единицу в индекс, либо вычтите из count.