1
resposta

Colocar ListView em um TableSection

Tenho uma página no meu app onde exibo informações gerais, no cabeçalho (primeira seção), depois deixo o usuário selecionar uma opção de avaliação (segunda seção) e por último exibe um Questionário em lista (terceira seção), onde ele precisa dar nota em cada questão, adicionar comentário, ou até mesmo marcar que não quer responder.

A princípio, me parece que devo usar o TableSection e para a última seção, preciso de um ListView mais complexo, com diversos componentes. O problema é que o ListView é exibido apenas em uma linha.

Como resolvo? Estou usando os componentes apropriados?

1 resposta

Oi Murillo, tudo bem?

Um TableSection pode conter componentes do tipo Cell. Então você pode tentar usar um ViewCell, que é um tipo de container, e lá dentro inserir um ListView.

Neste documento, foi usado um ViewCell para conter um StackLayout. Eu nunca fiz isso, mas em vez do StackLayout, você pode tentar trocar por um ListView:

https://docs.microsoft.com/pt-br/xamarin/xamarin-forms/user-interface/tableview

<?xml version="1.0" encoding="UTF-8"?>
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms" xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml" x:Class="DemoTableView.TablePage" Title="TableView">
    <ContentPage.Content>
        <TableView Intent="Settings">
            <TableRoot>
                <TableSection Title="Getting Started">
                    <ViewCell>
                        <StackLayout Orientation="Horizontal">
                            <Image Source="bulb.png" />
                            <Label Text="left"
                              TextColor="#f35e20" />
                            <Label Text="right"
                              HorizontalOptions="EndAndExpand"
                              TextColor="#503026" />
                        </StackLayout>
                    </ViewCell>
                </TableSection>
            </TableRoot>
        </TableView>
    </ContentPage.Content>
</ContentPage>

Mas cuidado para não "abusar" do TableView/TableSection, senão você pode acabar prejudicando o layout e a experiência do usuário.