2016-02-05 6 views
1

Я хочу создать listview внутри listview. Я попробовал под кодом, который не работает в Android, тот же код отлично работает в iOSListview внутри 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, в частности. Я привязываю список childview как часть ItemsSource родительского списка. Над кодом не работает, показывая только родительский список, дочернее listview не отображается.

+0

Почему он «не работает» на Android? Не могли бы Вы уточнить? – Demitrian

ответ

4

Список в Listview не поддерживается. Listviews предназначены для того, чтобы быть единственным корневым элементом управления на странице, главным образом из-за ограничений размеров и прокрутки.

Также сложность страницы может привести к снижению производительности.

В идеале я бы предложил переработать ваш макет, чтобы повторная информация находилась на другой странице. Однако, если вы хотите продолжить этот подход, вы должны посмотреть на RepeaterView в XLabs. В основном это улучшенный StackLayout.

+0

«Список просмотров - это единственный корневой элемент управления на странице» - это неправильно, даже если я согласен с общей идеей вашего ответа. В качестве обобщения избегайте вложенного контроля прокрутки в любом мобильном приложении. –

+0

@StephaneDelcroix - как это неправильно? Это было его намерением, если я правильно помню комментарий Джейсона Смита и отдельную от Крейга Данна. Из-за необходимости прокрутки и размера страницы, лучше всего, если ее только корневой элемент. Хотя у меня, конечно, было несколько списков на странице, которая работает, Джейсон упомянул, что она не поддерживается, поскольку она может столкнуться с множеством проблем. Если это изменение не изменилось в последних обновлениях? –

+0

Я думаю, когда вы говорите только о корневом управлении. это звучит, если на странице есть список, на котором вы должны поместить все внутри списка, что неверно. что вы подразумеваете под повторяющейся информацией на другой странице? Вы хотите использовать как contentview? – batmaci

Смежные вопросы