#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(); })}
}
};
}
}