Не удалось активировать экземпляр типа Com.ViewPagerIndicator.CirclePageIndicator из собственного дескриптора

#xamarin #xamarin.forms #xamarin.android

#xamarin #xamarin.forms #xamarin.android

Вопрос:

Я просто получаю эту ошибку на стороне Android. Я использую CarouselView.FormsPlugin для слайдера на моей странице 2. Первый — это регистрационная форма, которая используется в качестве страницы навигации. После этого с помощью главной страницы с вкладками, на которой есть другой слайдер для показа изображений.

Когда я нажимаю кнопку Далее, чтобы заполнить регистрационную форму, это выдает мне эту ошибку.

     private void NavButton_Clicked(object sender, EventArgs e)
    {
        App.Current.MainPage = new TabbedPage1();
    }
  

Полная ошибка: необработанное исключение:

Система.Исключение NotSupportedException: не удается активировать экземпляр типа Com.ViewPagerIndicator.CirclePageIndicator из собственного дескриптора 0xbfe3d69c (key_handle 0x9d8c998). произошло

Я не получаю никаких ошибок на IOS и при удалении ползунка на странице регистрации.

Вот как я показываю сначала (ползунок регистрации форм):

                 <controls:CarouselViewControl ItemsSource="{Binding QuestionList}"
                                      VerticalOptions="FillAndExpand"
                                      ShowIndicators="True"
                                      ShowArrows="False"
                                      Position="0"                                          
                                      IndicatorsTintColor="White"
                                      CurrentPageIndicatorTintColor="#ffc625"
                                      AnimateTransition="True">
                    <controls:CarouselViewControl.ItemTemplate>
                        <DataTemplate>
                            <StackLayout>
                                <aboutmydogquestionviews:AnswerboxQuestionView QuestionText="{Binding Q1.QuestionText}" HeightRequest="233"
                             QuestionSubText="{Binding Q1.QuestionSubText}" ShowAnswer="{Binding Q1.ShowAnswer}" ></aboutmydogquestionviews:AnswerboxQuestionView>
                                <aboutmydogquestionviews:AnswerboxQuestionView QuestionText="{Binding Q2.QuestionText}" HeightRequest="233" IsVisible="{Binding Q2,Converter={StaticResource IsNull}}"
                             QuestionSubText="{Binding Q2.QuestionSubText}" ShowAnswer="{Binding Q2.ShowAnswer}" ></aboutmydogquestionviews:AnswerboxQuestionView>
                            </StackLayout>
                        </DataTemplate>
                    </controls:CarouselViewControl.ItemTemplate>
                </controls:CarouselViewControl>
  

Комментарии:

1. вы пытаетесь отобразить индикаторы карусели

2. @G.hakim да, он отображается, но после попытки установить новую страницу он прерывается.

3. Установлена ли у вас последняя версия carousel forms?

4. @G.хаким, конечно, приятель.

5. Это ошибка в проекте CarouselView.FormsPlugin . Чтобы исправить это, вам нужно добавить проект под названием CirclePageIndicator от того же автора. (Или вы можете подождать, пока автор исправит проект Carousel).

Ответ №1:

Это ошибка в проекте CarouselView.FormsPlugin .

Чтобы исправить это, вам нужно добавить проект с именем CirclePageIndicator (версия v1.0.3) того же автора в проект Android (или вы можете подождать, пока автор исправит плагин Carousel).

Ответ №2:

у вас есть один элемент управления CarouselViewControl в Mainpage, в CarouselViewControl есть два элемента, при переходе на вторую страницу вы хотите нажать кнопку, чтобы заменить текущую главную страницу проекта на страницу вкладок1

Если вы хотите это сделать, я делаю один пример, который вы можете просмотреть, и я не получаю никакого сообщения об ошибке.

Страница 7.xaml:

 <?xml version="1.0" encoding="utf-8" ?>
<ContentPage
  x:Class="test2.Page7"
  xmlns="http://xamarin.com/schemas/2014/forms"
  xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
  xmlns:abstractions="clr-namespace:CarouselView.FormsPlugin.Abstractions;assembly=CarouselView.FormsPlugin.Abstractions">
<abstractions:CarouselViewControl
    ItemsSource="{Binding pages}"
    Orientation="Horizontal"
    PositionSelectedCommand="{Binding Mycommand}"
    ShowArrows="true"
    ShowIndicators="true">
    <abstractions:CarouselViewControl.ItemTemplate>
        <DataTemplate>
            <ContentView Content="{Binding .}"/>
        </DataTemplate>

    </abstractions:CarouselViewControl.ItemTemplate>
</abstractions:CarouselViewControl>

</ContentPage>

public partial class Page7 : ContentPage
{
    public Page7()
    {
        InitializeComponent();
        Title = "CarouselView";
        this.BindingContext = new MainViewModel1();
    }    
}
  

ViewModel:

 class MainViewModel1
{
    public List<ContentView> pages { get; set; }
    public Command Mycommand { get; set; }

    public MainViewModel1()
    {
        pages = new List<ContentView>();
        pages.Add(new View1());
        pages.Add(new View2());

        Mycommand = new Command(() =>
        {
            Console.WriteLine("Position selected!!!!!!!!!!!!!!");
        });          
    }
}
  

View1.cs, это contentview

 public class View1 : ContentView
{
    public View1 ()
    {
        Content = new StackLayout {
            Children = {
                new Label { Text = "Welcome to Xamarin.Forms!" }
            }
        };
    }
}
  

View2.cs, это contentview

 public class View2 : ContentView
{
    public View2 ()
    {
        Content = new StackLayout {
            Children = {
                new Label { Text = "Welcome to Xamarin.Forms!" },
                new Button{Text="btn1", WidthRequest=80,HeightRequest=50,Command=new Command(()=>{App.Current.MainPage=new TabbedPage1(); })}

            }
        };
    }
}
  

введите описание изображения здесь