TapGestureRecognition в списке форм Xamarin - PullRequest
0 голосов
/ 19 февраля 2020

Мне нужно проверить, не нажата ли пустая часть списка форм Xamarin. Например, есть 5 строк, и пространство под этими заполненными строками сокращается, и должен вызываться метод. Я попытался добавить Tapgesturerecognizer в просмотр списка и страницу, содержащую просмотр списка, но это не сработало. Есть ли способ проверить, не коснулся ли кто-нибудь пустое место в списке?

<ListView x:Name="ItemsListView"
                ItemsSource="{Binding Items}"
                VerticalOptions="FillAndExpand"
                HasUnevenRows="true"
                RefreshCommand="{Binding LoadItemsCommand}"
                IsPullToRefreshEnabled="true"
                IsRefreshing="{Binding IsBusy, Mode=OneWay}"
                CachingStrategy="RecycleElement"
                ItemSelected="OnItemSelected">
            <d:ListView.ItemsSource>
                <x:Array Type="{x:Type x:String}">
                    <x:String>First Item</x:String>
                    <x:String>Second Item</x:String>
                    <x:String>Third Item</x:String>
                    <x:String>Fourth Item</x:String>
                    <x:String>Fifth Item</x:String>
                    <x:String>Sixth Item</x:String>
                </x:Array>
            </d:ListView.ItemsSource>
            <ListView.ItemTemplate>
                <DataTemplate>
                    <ViewCell>
                        <StackLayout Padding="10">
                            <Label Text="{Binding Text}" 
                                d:Text="{Binding .}"
                                LineBreakMode="NoWrap" 
                                Style="{DynamicResource ListItemTextStyle}" 
                                FontSize="16" />
                            <Label Text="{Binding Description}" 
                                d:Text="Item descripton"
                                LineBreakMode="NoWrap"
                                Style="{DynamicResource ListItemDetailTextStyle}"
                                FontSize="13" />
                        </StackLayout>
                    </ViewCell>
                </DataTemplate>

            </ListView.ItemTemplate>
            <ListView.GestureRecognizers>
                <TapGestureRecognizer Tapped="OnTapGestureRecognizerTapped" NumberOfTapsRequired="1"></TapGestureRecognizer> 
            </ListView.GestureRecognizers>
        </ListView>

Ответы [ 2 ]

0 голосов
/ 20 февраля 2020

Попробуйте добавить нижний колонтитул в Listview

<ListView
    x:Name="ItemsListView"
    ...>

    <ListView.Footer>
        <ContentView>
            <ContentView.GestureRecognizers>
                <TapGestureRecognizer />
            <ContentView.GestureRecognizers>
        </ContentView>
    </ListView.Footer>
</ListView>

установить нижний колонтитул и поместите ваш TapGestureRecognizer

0 голосов
/ 19 февраля 2020

Оформить заказ https://docs.microsoft.com/en-us/xamarin/xamarin-forms/user-interface/listview/interactivity#selection и нажмите . в нем рассматриваются действия по выделению в ListView, чтобы вы могли выполнить некоторую логику c Когда элемент выбран

Обновление: Удалить код в снимке экрана , а затем настроить выбор элемента ListView, как показано в ссылка.

затем поместите ListView (убедитесь, что представление списка заполняет только необходимое ему пространство) в StackLayout и настройте событие Tapped в stackLayout с помощью logi c, которую необходимо выполнить при нажатии на пустую страницу. ,

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...