1

В моем приложении Xamarin.Forms для Windows Phone 8.1 у нас есть несколько страниц, которые пользователь может провести между использованием CarouselPage. Одна из этих страниц содержит ListView, который заполняет экран, и когда эта страница выбрана, пользователь больше не может пронести; действие интерпретируется списком в виде крана в одной из его ячеек. Что я могу сделать, чтобы горизонтальные щелчки по-прежнему меняли страницу в карусели? Мне по-прежнему нужны вертикальные прокрутки для прокрутки списка.Как разрешить пользователю прокручивать страницу CarouselPage, когда она содержит ListView?

+0

Вы пытались использовать CarouselView вместо CarouselPage? Страница CarouselPage скоро устареет – BraveHeart

+0

Вам не нужны краны в «ListView»? Проверьте свойство 'InputTransparent' на нем –

+0

@BraveHeart это не похоже, что CarouselView доступен в стабильной версии Xamarin Forms. Знаете ли вы, когда он будет доступен? – Simon

ответ

0

Это не может быть достигнуто непосредственно в проекте Xamarin Forms, потому что, когда есть доступ к списку, все нажатия, жесты и т. Д. Будут обрабатываться самим списком. Только те жесты, которые не обрабатываются верхней частью макета/элемента управления, будут переданы в элементы управления/макеты под ним. Итак, в вашем случае listview обрабатывает все жесты, и ничто не передается на вашу страницу карусели.

Единственная работа вокруг проблемы, о которой я могу думать, это установка свойства InputTransparent в виде списка true. В этом случае никакие жесты не будут обрабатываться списком, и все будет передано на страницу карусели. Но поскольку вам нужно иметь выделенный элемент и открыть страницу с подробными сведениями из списка, то вы можете сделать кнопку в шаблоне элемента списка и обработать щелчок по кнопке. Поскольку кнопка представляет собой отдельный элемент управления и сверху списка, параметр InputTransparent не влияет на привязку события кнопки/команды кнопки.

EDIT: В соответствии с опытом ОП он может получить доступ к выбранному элементу и ко всем другим функциям списка даже после установки InputTransparent.

+1

Я установил 'InputTransparent', и ListView все еще работает так, как я надеюсь, даже без установки кнопок для его содержимого. Я все еще могу прокручивать его и нажимать на предметы, но я также могу прокрутить, чтобы изменить карусель. Благодаря! – Simon

+0

Вы имеете в виду, что вы выбираете элемент listview, даже после установки InputTransparent? –

+1

Да - я все еще могу прокрутить список и выбрать элементы. – Simon