如何知道您在Xamarin表单中的CarouselView上使用哪个指示器?

如何知道您在Xamarin表单中的CarouselView上使用哪个指示器?,xamarin,xamarin.forms,xamarin.android,xamarin.ios,Xamarin,Xamarin.forms,Xamarin.android,Xamarin.ios,我可以使用CarouselView成功加载项目!是的,到目前为止还不错。但是现在当我到达第二项时,我尝试做一个只会发生在第二项索引中的特定函数 现在我似乎已经知道了当我在第二页的时候,虽然日志在日志中写了很多东西,但是当我转到第三页,或者回到第一页的时候,我已经记不清我在哪里了 <CarouselView BackgroundColor="Transparent" HorizontalScrollBarVisibility="Nev

我可以使用CarouselView成功加载项目!是的,到目前为止还不错。但是现在当我到达第二项时,我尝试做一个只会发生在第二项索引中的特定函数

现在我似乎已经知道了当我在第二页的时候,虽然日志在日志中写了很多东西,但是当我转到第三页,或者回到第一页的时候,我已经记不清我在哪里了

   <CarouselView BackgroundColor="Transparent"
                          HorizontalScrollBarVisibility="Never"
                          IndicatorView="indicatorView"
                          VerticalOptions="CenterAndExpand"
                          Margin="25,0"
                          Scrolled="CarouselView_Scrolled"
                          ItemsSource="{Binding BindingContext.Intro, Source={x:Reference ParentView}}">
                <CarouselView.ItemsLayout>
                    <LinearItemsLayout Orientation="Horizontal"
                                       SnapPointsAlignment="Center" 
                                       SnapPointsType="MandatorySingle"/>
                </CarouselView.ItemsLayout>
                <CarouselView.ItemTemplate>
                    <DataTemplate>
                                <Label Text="{Binding Text}"
                                       FontSize="Large"
                                       HorizontalTextAlignment="Start"
                                       FontFamily="Helvetica Neue"
                                       TextColor="DimGray"
                                       FontAttributes="None" />

                        </AbsoluteLayout>
                    </DataTemplate>
                </CarouselView.ItemTemplate>
            </CarouselView>  
我需要在前端添加什么逻辑才能成功监视第2页上的im?

有一个
CenterItemIndex
属性,告诉您哪个项目在中心视图中


或者,当我尝试制作动画时,您可以使用事件

not lookin smooth(不平滑)。由于某些原因,它无法进行平滑着色。你在代码中看到的“ParentView”是我更改颜色的视图的x:名称,它不仅在日志中给了我一个指示器,而且还将其垃圾邮件发送了8次以上。我相信这就是问题所在。我试着用一个布尔值来解决这个问题,但它仍然显示错误,通常滚动事件会在滚动发生时触发多次。这就是为什么您可能希望使用CurrentItemChanged。是的,但那一个没有“CenterItemIndex”。
    async void CarouselView_Scrolled(System.Object sender, Xamarin.Forms.ItemsViewScrolledEventArgs e)
    {
        System.Diagnostics.Debug.WriteLine(e.CenterItemIndex);

        if (e.CenterItemIndex == 1)
        {
            if (Transitioning == false)
            {
                Transitioning = true;
                await ParentView.ColorTo(Color.White, Color.FromHex("#161825"), c =>
                {
                    ParentView.BackgroundColor = c;
                    Transitioning = false;
                }, 500);
            }
        }
        else
        {
            Transitioning = true;
            await ParentView.ColorTo(Color.FromHex("#161825"), Color.White, c => ParentView.BackgroundColor = c, 500);
            Transitioning = false;
        }
    }