Xamarin.Forms布局在iOS上为空

Xamarin.Forms布局在iOS上为空,xamarin,xamarin.forms,Xamarin,Xamarin.forms,我有一个Xamarin.Forms应用程序,它使用Alex Rainman的CarouselView()来呈现一个carousel(惊喜!:)。旋转木马中的每一页都包含一个项目列表。在Android上,它看起来像这样: <controls:CarouselViewControl Orientation="Horizontal" InterPageSpacing="0"

我有一个Xamarin.Forms应用程序,它使用Alex Rainman的CarouselView()来呈现一个carousel(惊喜!:)。旋转木马中的每一页都包含一个项目列表。在Android上,它看起来像这样:

<controls:CarouselViewControl Orientation="Horizontal" 
                                  InterPageSpacing="0"
                                  Position="0" 
                                  ItemsSource="{Binding Columns}" 
                                  VerticalOptions="FillAndExpand" 
                                  HorizontalOptions="FillAndExpand"
                                  BackgroundColor="Gray"
                              ShowIndicators="True"
                              ShowArrows="True">
    <controls:CarouselViewControl.ItemTemplate>
        <DataTemplate>
            <ContentView HorizontalOptions="FillAndExpand"
                             VerticalOptions="FillAndExpand"                                 
                             Padding="20">
                <ListView HorizontalOptions="FillAndExpand"
                              VerticalOptions="FillAndExpand"
                              BackgroundColor="LightGray"
                              Header="{Binding Name}"
                              ItemsSource="{Binding Tasks}"
                              ItemSelected="ListView_ItemSelected">
                    <ListView.ItemTemplate>
                        <DataTemplate>
                            <ImageCell ImageSource="{Binding Image}"
                                           Text="{Binding Title}"/>
                        </DataTemplate>
                    </ListView.ItemTemplate>
                </ListView>
            </ContentView>
        </DataTemplate>
    </controls:CarouselViewControl.ItemTemplate>
</controls:CarouselViewControl>
在Windows上也是如此。然而,在iOS上,我得到了以下信息:

<controls:CarouselViewControl Orientation="Horizontal" 
                                  InterPageSpacing="0"
                                  Position="0" 
                                  ItemsSource="{Binding Columns}" 
                                  VerticalOptions="FillAndExpand" 
                                  HorizontalOptions="FillAndExpand"
                                  BackgroundColor="Gray"
                              ShowIndicators="True"
                              ShowArrows="True">
    <controls:CarouselViewControl.ItemTemplate>
        <DataTemplate>
            <ContentView HorizontalOptions="FillAndExpand"
                             VerticalOptions="FillAndExpand"                                 
                             Padding="20">
                <ListView HorizontalOptions="FillAndExpand"
                              VerticalOptions="FillAndExpand"
                              BackgroundColor="LightGray"
                              Header="{Binding Name}"
                              ItemsSource="{Binding Tasks}"
                              ItemSelected="ListView_ItemSelected">
                    <ListView.ItemTemplate>
                        <DataTemplate>
                            <ImageCell ImageSource="{Binding Image}"
                                           Text="{Binding Title}"/>
                        </DataTemplate>
                    </ListView.ItemTemplate>
                </ListView>
            </ContentView>
        </DataTemplate>
    </controls:CarouselViewControl.ItemTemplate>
</controls:CarouselViewControl>
起初,我认为这是CarouseView组件中的一个bug,并提交了一份报告,但作者说他自己的工作很好。我试着用我能想到的任何方式调试它,但没有发现问题。旋转视图被实例化并添加到视图层次结构中。如果我将ViewModel替换为显示列的ListView,那么ViewModel将被实例化并正常工作。现在我没有主意了,非常感谢你的帮助

<controls:CarouselViewControl Orientation="Horizontal" 
                                  InterPageSpacing="0"
                                  Position="0" 
                                  ItemsSource="{Binding Columns}" 
                                  VerticalOptions="FillAndExpand" 
                                  HorizontalOptions="FillAndExpand"
                                  BackgroundColor="Gray"
                              ShowIndicators="True"
                              ShowArrows="True">
    <controls:CarouselViewControl.ItemTemplate>
        <DataTemplate>
            <ContentView HorizontalOptions="FillAndExpand"
                             VerticalOptions="FillAndExpand"                                 
                             Padding="20">
                <ListView HorizontalOptions="FillAndExpand"
                              VerticalOptions="FillAndExpand"
                              BackgroundColor="LightGray"
                              Header="{Binding Name}"
                              ItemsSource="{Binding Tasks}"
                              ItemSelected="ListView_ItemSelected">
                    <ListView.ItemTemplate>
                        <DataTemplate>
                            <ImageCell ImageSource="{Binding Image}"
                                           Text="{Binding Title}"/>
                        </DataTemplate>
                    </ListView.ItemTemplate>
                </ListView>
            </ContentView>
        </DataTemplate>
    </controls:CarouselViewControl.ItemTemplate>
</controls:CarouselViewControl>
这是我的密码:

<controls:CarouselViewControl Orientation="Horizontal" 
                                  InterPageSpacing="0"
                                  Position="0" 
                                  ItemsSource="{Binding Columns}" 
                                  VerticalOptions="FillAndExpand" 
                                  HorizontalOptions="FillAndExpand"
                                  BackgroundColor="Gray"
                              ShowIndicators="True"
                              ShowArrows="True">
    <controls:CarouselViewControl.ItemTemplate>
        <DataTemplate>
            <ContentView HorizontalOptions="FillAndExpand"
                             VerticalOptions="FillAndExpand"                                 
                             Padding="20">
                <ListView HorizontalOptions="FillAndExpand"
                              VerticalOptions="FillAndExpand"
                              BackgroundColor="LightGray"
                              Header="{Binding Name}"
                              ItemsSource="{Binding Tasks}"
                              ItemSelected="ListView_ItemSelected">
                    <ListView.ItemTemplate>
                        <DataTemplate>
                            <ImageCell ImageSource="{Binding Image}"
                                           Text="{Binding Title}"/>
                        </DataTemplate>
                    </ListView.ItemTemplate>
                </ListView>
            </ContentView>
        </DataTemplate>
    </controls:CarouselViewControl.ItemTemplate>
</controls:CarouselViewControl>
MainPage.xaml:

<controls:CarouselViewControl Orientation="Horizontal" 
                                  InterPageSpacing="0"
                                  Position="0" 
                                  ItemsSource="{Binding Columns}" 
                                  VerticalOptions="FillAndExpand" 
                                  HorizontalOptions="FillAndExpand"
                                  BackgroundColor="Gray"
                              ShowIndicators="True"
                              ShowArrows="True">
    <controls:CarouselViewControl.ItemTemplate>
        <DataTemplate>
            <ContentView HorizontalOptions="FillAndExpand"
                             VerticalOptions="FillAndExpand"                                 
                             Padding="20">
                <ListView HorizontalOptions="FillAndExpand"
                              VerticalOptions="FillAndExpand"
                              BackgroundColor="LightGray"
                              Header="{Binding Name}"
                              ItemsSource="{Binding Tasks}"
                              ItemSelected="ListView_ItemSelected">
                    <ListView.ItemTemplate>
                        <DataTemplate>
                            <ImageCell ImageSource="{Binding Image}"
                                           Text="{Binding Title}"/>
                        </DataTemplate>
                    </ListView.ItemTemplate>
                </ListView>
            </ContentView>
        </DataTemplate>
    </controls:CarouselViewControl.ItemTemplate>
</controls:CarouselViewControl>
此外,还包括整个解决方案的一部分(没有Windows项目,因为它非常大,并不真正相关)。

<controls:CarouselViewControl Orientation="Horizontal" 
                                  InterPageSpacing="0"
                                  Position="0" 
                                  ItemsSource="{Binding Columns}" 
                                  VerticalOptions="FillAndExpand" 
                                  HorizontalOptions="FillAndExpand"
                                  BackgroundColor="Gray"
                              ShowIndicators="True"
                              ShowArrows="True">
    <controls:CarouselViewControl.ItemTemplate>
        <DataTemplate>
            <ContentView HorizontalOptions="FillAndExpand"
                             VerticalOptions="FillAndExpand"                                 
                             Padding="20">
                <ListView HorizontalOptions="FillAndExpand"
                              VerticalOptions="FillAndExpand"
                              BackgroundColor="LightGray"
                              Header="{Binding Name}"
                              ItemsSource="{Binding Tasks}"
                              ItemSelected="ListView_ItemSelected">
                    <ListView.ItemTemplate>
                        <DataTemplate>
                            <ImageCell ImageSource="{Binding Image}"
                                           Text="{Binding Title}"/>
                        </DataTemplate>
                    </ListView.ItemTemplate>
                </ListView>
            </ContentView>
        </DataTemplate>
    </controls:CarouselViewControl.ItemTemplate>
</controls:CarouselViewControl>
在iOS和Android项目中,请调用:

<controls:CarouselViewControl Orientation="Horizontal" 
                                  InterPageSpacing="0"
                                  Position="0" 
                                  ItemsSource="{Binding Columns}" 
                                  VerticalOptions="FillAndExpand" 
                                  HorizontalOptions="FillAndExpand"
                                  BackgroundColor="Gray"
                              ShowIndicators="True"
                              ShowArrows="True">
    <controls:CarouselViewControl.ItemTemplate>
        <DataTemplate>
            <ContentView HorizontalOptions="FillAndExpand"
                             VerticalOptions="FillAndExpand"                                 
                             Padding="20">
                <ListView HorizontalOptions="FillAndExpand"
                              VerticalOptions="FillAndExpand"
                              BackgroundColor="LightGray"
                              Header="{Binding Name}"
                              ItemsSource="{Binding Tasks}"
                              ItemSelected="ListView_ItemSelected">
                    <ListView.ItemTemplate>
                        <DataTemplate>
                            <ImageCell ImageSource="{Binding Image}"
                                           Text="{Binding Title}"/>
                        </DataTemplate>
                    </ListView.ItemTemplate>
                </ListView>
            </ContentView>
        </DataTemplate>
    </controls:CarouselViewControl.ItemTemplate>
</controls:CarouselViewControl>
Xamarin.Forms.Init();
CarouselViewRenderer.Init();





    namespace ProofOfConcept.iOS
    {
        // The UIApplicationDelegate for the application. This class is responsible for launching the 
        // User Interface of the application, as well as listening (and optionally responding) to 
        // application events from iOS.
        [Register("AppDelegate")]
        public partial class AppDelegate : global::Xamarin.Forms.Platform.iOS.FormsApplicationDelegate
        {
            //
            // This method is invoked when the application has loaded and is ready to run. In this 
            // method you should instantiate the window, load the UI into it and then make the window
            // visible.
            //
            // You have 17 seconds to return from this method, or iOS will terminate your application.
            //
            public override bool FinishedLaunching(UIApplication app, NSDictionary options)
            {
                global::Xamarin.Forms.Forms.Init();
                CarouselViewRenderer.Init();
                LoadApplication(new App());

                return base.FinishedLaunching(app, options);
            }
        }
    }

如果有人在iOS中出现此问题,即使在调用“init”之后。您可以尝试向旋转木马控件发出高度请求。如果控件位于网格中,并且您正在使用Auto for RowDefinitin.Height

该死的!我怎么会错过这个!?谢谢你一直在我眼前指出什么!另外,显然Android不需要初始化调用。
<controls:CarouselViewControl Orientation="Horizontal" 
                                  InterPageSpacing="0"
                                  Position="0" 
                                  ItemsSource="{Binding Columns}" 
                                  VerticalOptions="FillAndExpand" 
                                  HorizontalOptions="FillAndExpand"
                                  BackgroundColor="Gray"
                              ShowIndicators="True"
                              ShowArrows="True">
    <controls:CarouselViewControl.ItemTemplate>
        <DataTemplate>
            <ContentView HorizontalOptions="FillAndExpand"
                             VerticalOptions="FillAndExpand"                                 
                             Padding="20">
                <ListView HorizontalOptions="FillAndExpand"
                              VerticalOptions="FillAndExpand"
                              BackgroundColor="LightGray"
                              Header="{Binding Name}"
                              ItemsSource="{Binding Tasks}"
                              ItemSelected="ListView_ItemSelected">
                    <ListView.ItemTemplate>
                        <DataTemplate>
                            <ImageCell ImageSource="{Binding Image}"
                                           Text="{Binding Title}"/>
                        </DataTemplate>
                    </ListView.ItemTemplate>
                </ListView>
            </ContentView>
        </DataTemplate>
    </controls:CarouselViewControl.ItemTemplate>
</controls:CarouselViewControl>