Как создать динамический список с различной высотой строки в xamrin.forms? - PullRequest
0 голосов
/ 06 мая 2019

Я хочу создать представление списка «заметок», где каждая заметка имеет собственную высоту на основе текста, написанного пользователем.

Я использовал коллекционное представление для достижения такой цели, но оно не является динамическим и кажется уродливым со строками с таким же высоким значением.

<?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="KiaiDay.Views.Main.Notas" xmlns:resource="clr-namespace:KiaiDay.Resources">
    <ContentPage.Content>
        <StackLayout Padding="10">
            <SearchBar Placeholder="{x:Static resource:AppResource.Pesquisa}" TextChanged="SearchBar_TextChanged"></SearchBar>
            <CollectionView ItemsSource="{Binding Notas}">
                <CollectionView.ItemsLayout>
                    <GridItemsLayout Orientation="Vertical" Span="3"/>
                </CollectionView.ItemsLayout>
                <CollectionView.ItemTemplate>
                    <DataTemplate>
                        <StackLayout Padding="5">
                        <Frame BackgroundColor="{Binding Cor}"
                                    OutlineColor="Black"
                                    CornerRadius="10" Padding="0">
                            <Grid>
                                <Grid.RowDefinitions>
                                    <RowDefinition Height="15"/>
                                    <RowDefinition Height="Auto"/>
                                </Grid.RowDefinitions>
                                <Grid.ColumnDefinitions>
                                    <ColumnDefinition Width="*"/>
                                </Grid.ColumnDefinitions>

                                <Label Grid.Row="0" FontSize="Micro" FontAttributes="Bold" Text="{Binding Titulo}" VerticalTextAlignment="Center" HorizontalTextAlignment="Center"/>
                                <Label LineBreakMode="WordWrap" Grid.Row="1" VerticalTextAlignment="Start" Text="{Binding Descricao}" HorizontalTextAlignment="Center"/>
                            </Grid>
                            </Frame>
                        </StackLayout>
                    </DataTemplate>
                </CollectionView.ItemTemplate>
            </CollectionView>
        </StackLayout>
    </ContentPage.Content>
</ContentPage>

Я бы хотел что-то вроде этого: https://imgur.com/rsPiExl Но то, что я сейчас получаю, это: https://imgur.com/rvuuOis

...