#xamarin.forms
#xamarin.forms
Вопрос:
Xamarin.Forms 3.6 включил CarouselView, поэтому я больше не могу использовать пакет nuget, но в поставляемой версии, похоже, отсутствуют некоторые функции, в частности, индикаторы, похоже, полностью отсутствуют?
Вот мой старый код, который больше не компилируется:
// Create the carousel
_carouselView = new CarouselView()
{
VerticalOptions = LayoutOptions.FillAndExpand,
HorizontalOptions = LayoutOptions.FillAndExpand,
};
_carouselView.ItemTemplate = template;
_carouselView.SetBinding(ItemsView.ItemsSourceProperty, nameof(_viewModel.CarouselItems));
_carouselView.SetBinding(CarouselView.PositionProperty, nameof(_viewModel.Position));
// Create page-indicator
var indicator = new CarouselIndicators { ItemsSource = _viewModel.CarouselItems };
indicator.Margin = new Thickness(20, 20, 20, 0);
indicator.SetBinding(CarouselIndicators.PositionProperty, nameof(_viewModel.Position));
Режим просмотра карусели.Position и CarouselIndicators отсутствуют в 3.6 : (Нужно ли мне внедрять индикаторы вручную в 3.6?
Комментарии:
1. Вы ссылаетесь на этот пакет ?
2. Вы смешиваете CarouselView от Xamarin Forms с CarouselView от AlexRainMan, также вы уверены, что Xamarin Forms добавил его? Потому что я не в курсе этого!!
3. Какую версию NuGet вы используете для добавления CarouselView. Вы имеете в виду, что предварительная версия может использовать CarouselView. Position и CarouselIndicators? @Tompi
4. Да, @JuniorJiang-MSFT, я работаю над предварительной версией. Возможно, это была официальная версия, которая была объединена в XF в 3.6 и что мои проблемы связаны только с предварительными версиями…
5. @G.hakim: Нет, я не смешиваю их, но, похоже, XF объединил ЧАСТИ carouselview в 3.6, но не в полнофункциональную версию… ИТАК, я думаю, я отложу обновление XF до тех пор, пока оно не будет полностью объединено: forums.xamarin.com/discussion/150588/conflicting-carouselviews
Ответ №1:
Как Xamarin.Forms 3.6 включает реализацию CarouselView, если вы перейдете с использования Xamarin.Формы<3.6 и Xamarin.Формы.CarouselView для Xamarin.Forms 3.6 он собирается сломаться. Потому что
- Xamarin.Формы.Пакет nuget CarouselView устарел и не обновлялся в течение 2 лет
- из-за наличия Xamarin.Формы 3.6 и Xamarin.Формы.CarouselView параллельно у вас будет конфликт имен между двумя элементами CarouselView
- Xamarin.Формы.Реализация CarouselView в Xamarin.Формы 3.6 не содержат
Position
свойства
Многие проекты перешли на реализацию CarouselViews сообществом :
- https://forums.xamarin.com/discussion/106176/carouselview-position-problem
- https://forums.xamarin.com/discussion/129883/i-am-unable-to-set-the-particular-page-in-carousel-view
- https://forums.xamarin.com/discussion/132858/carouselview-state-of-the-union
- https://forums.xamarin.com/discussion/141384/how-to-implement-a-simple-carouselview
Решением для вас было бы :
- Удалите Xamarin.Формы.CarouselView
- Добавить https://github.com/AndreiMisiukevich/CardView (Пакет nuget CardsView)
- Обновите Xamarin.Формы для 3.6
- Изменить
_carouselView.SetBinding(CarouselView.PositionProperty, nameof(_viewModel.Position));
Для
_carouselView.SetBinding(CardsView.SelectedIndexProperty, nameof(_viewModel.Position));