2016-02-05 53 views
1

我想在listview里面创建listview。我试着下面的代码,这是不工作在Android中,相同的代码在iOS中完美工作listview里面的listview Xamarin.Forms

<local:CustomListview 
      x:Name="ListView" 
     ItemsSource="{Binding List1}" HasUnevenRows="True" 
      > 
      <local:CustomListview.ItemTemplate> 
      <DataTemplate> 
       <ViewCell> 
       <StackLayout 
       Orientation="Vertical"> 
        <StackLayout Orientation="Horizontal"> 
        <Label Text="{Binding Name}"></Label> 
        <Label Text="{Binding CreatedOn}"></Label> 
        </StackLayout> 
        <Label Text="{Binding Description}"></Label> 

        <StackLayout 
        Orientation="Horizontal" 
        > 
        <Label Text="{Binding Count}"></Label> 
        <Label Text="Likes(s)"></Label> 
        </StackLayout> 

        <StackLayout 
         Orientation="Vertical" 
         Padding="5, 0, 0, 0" 
        > 
         <local:CustomListview ItemsSource="{Binding List2}" HasUnevenRows="True"> 
         <local:CustomListview.ItemTemplate> 
           <DataTemplate> 
            <ViewCell> 
            <StackLayout Orientation="Vertical"> 
             <Label Text="{Binding Description}"></Label> 
             <StackLayout Orientation="Horizontal"> 
             <Label Text="{Binding CreatedBy}"></Label> 
             <Label Text="{Binding CreatedOn}"></Label> 
             </StackLayout> 
            </StackLayout> 
            </ViewCell> 
           </DataTemplate> 
         </local:CustomListview.ItemTemplate> 
         </local:CustomListview> 
        </StackLayout>  

       </StackLayout> 
       </ViewCell> 
      </DataTemplate> 
      </local:CustomListview.ItemTemplate> 


     </local:CustomListview> 

有什么建议吗?

我不能使用组列表视图,因为我需要以特殊方式安排像Label这样的控件。我绑定子列表视图作为父列表视图的ItemsSource的一部分。上面的代码不工作,它只显示父级列表视图,不显示子列表视图。

+0

为什么它在Android上“不工作”?你可以再详细一点吗? – Demitrian

回答

4

Listview内部的ListView不是受支持的选项。列表视图旨在成为页面上唯一的根控件,主要是由于大小和滚动问题。

此外,页面的复杂性可能会导致较差的性能。

理想情况下,我会建议重做您的布局,以便重复信息在另一页上。但是,如果您想继续使用此方法,则应该查看XLab中的RepeaterView。它基本上是一个增强的StackLayout。

+0

“即使我同意您的答案的一般想法,但”Listviews被设计成为页面上唯一的根控件“是错误的。作为一个概括,避免任何移动应用程序中的嵌套滚动控制。 –

+0

@StephaneDelcroix - 这是怎么回事?如果我记得贾森史密斯的评论和克雷格邓恩的单独评论,那就是它的意图。由于需要滚动和调整页面的大小,因此最好只使用它的根元素。虽然我确实在一个可以工作的页面上有多个列表视图,但是Jason提到它并没有真正的支持,因为它可能会遇到很多问题。除非这种情绪在最近的更新中有所改变? –

+0

我想当你说只有根控制。这听起来像是如果有一个页面上的listview,你必须把所有东西放在listview中,这是不正确的。你的意思是在另一页上重复的信息?你的意思是使用像contentview? – batmaci