我可以列出我的消息,Listview

时间:2018-04-06 15:14:08

标签: xaml listview xamarin.forms

我可以列出我的消息,但现在我想要每个消息后我都有一个气球。确定我是发送还是收到。气球现在的文字不停留。你能救我吗?

<ListView x:Name="Post_List" Grid.Row="1">
    <ListView.ItemTemplate>
        <DataTemplate>
            <ViewCell>
                <Grid ColumnSpacing="2" Padding="5">

                    <Grid.ColumnDefinitions>
                        <ColumnDefinition Width="*"></ColumnDefinition>
                        <ColumnDefinition Width="40"></ColumnDefinition>
                    </Grid.ColumnDefinitions>

                    <Grid.RowDefinitions>
                        <RowDefinition Height="*"></RowDefinition>
                        <RowDefinition Height="Auto"></RowDefinition>
                    </Grid.RowDefinitions>

                    <Frame Grid.Row="0" OutlineColor="Transparent"
                        HasShadow="False" Grid.Column="0"
                        CornerRadius="5" BackgroundColor="#03A9F4">
                        <Label TextColor="White" Text="{Binding Mensagem}"/>
                    </Frame>

                    <Label FontSize="Micro" Grid.Row="1" Grid.Column="0"
                        Text="{Binding Data}" TextColor="Gray"></Label>

                </Grid>
            </ViewCell>
        </DataTemplate>
    </ListView.ItemTemplate>
</ListView>

My chat view

Similar with this

1 个答案:

答案 0 :(得分:2)

HasUnevenRows="True"添加到ListView将解决您的问题。

这是因为您没有设置任何RowHeight,这是正确的,因为您希望高度基于内容,但ListView不知道要应用的维度。使用HasUnevenRows ListView将计算尺寸以适合内容。

<ListView x:Name="Post_List" Grid.Row="1" HasUnevenRows="True" >
<ListView.ItemTemplate >
    <DataTemplate >
        <ViewCell>
            <Grid ColumnSpacing="2" Padding="5">
                <Grid.ColumnDefinitions>
                    <ColumnDefinition Width="*" />
                    <ColumnDefinition Width="40" />
                </Grid.ColumnDefinitions>
                <Grid.RowDefinitions>
                    <RowDefinition  Height="*" />
                    <RowDefinition Height="Auto" />

                </Grid.RowDefinitions>

                <Frame Grid.Row="0" OutlineColor="Transparent" HasShadow="False" Grid.Column="0" CornerRadius="5" BackgroundColor="#03A9F4">
                    <Label TextColor="White" Text="{Binding Mensagem}"/>
                </Frame>

                <Label FontSize="Micro" Grid.Row="1" Grid.Column="0" Text="{Binding Data}" TextColor="Gray"></Label>
            </Grid>
        </ViewCell>
    </DataTemplate>
</ListView.ItemTemplate>
</ListView> 

希望这会有所帮助.-