Проблема с внешним видом элемента шаблона Xamarin Listview

#xamarin #xamarin.forms

#xamarin #xamarin.forms

Вопрос:

Я работаю над стилизацией моего ListView. В моем ItemTemplate есть только две метки в Stacklayout с вертикальной ориентацией. Как вы можете видеть на рисунке, между двумя метками есть некоторый интервал. Мне не нужно это пространство, и метки расположены прямо друг под другом. У кого-нибудь есть совет?

Просмотр списка с надписью-фоном

 <ListView x:Name="ItemList"
             ItemSelected="ItemList_ItemSelected"
             HasUnevenRows="True"
             IsGroupingEnabled="true" 
             GroupDisplayBinding="{Binding LongName}"
             GroupShortNameBinding="{Binding ShortName}"
             SeparatorVisibility="None">
            <ListView.GroupHeaderTemplate>
                <DataTemplate>
                    <ViewCell>
                        <ViewCell.View>
                            <StackLayout Orientation="Horizontal" 
                                         BackgroundColor="{StaticResource LightGreyColor}" 
                                         Padding="20,10,0,10">
                                <Label Text="{Binding LongName}"
                                       Style="{DynamicResource DateLabel}"/>
                            </StackLayout>
                        </ViewCell.View>
                    </ViewCell>
                </DataTemplate>
            </ListView.GroupHeaderTemplate>
            <ListView.ItemTemplate>
                <DataTemplate>
                    <ViewCell>
                        <ViewCell.View>
                            <StackLayout Orientation="Vertical"
                                         Padding="20,10,0,10">
                                <Label Text="{Binding Name}"
                                       Style="{DynamicResource ItemTitleLabel}"
                                       BackgroundColor="Bisque"/>
                                <Label Text="{Binding Description}"
                                       Style="{DynamicResource SubTitleLabel}"
                                       BackgroundColor="Bisque"/>
                            </StackLayout>
                        </ViewCell.View>
                    </ViewCell>
                </DataTemplate>
            </ListView.ItemTemplate>
        </ListView>  

Ответ №1:

Я помню, что интервал по умолчанию между элементами в StackLayout (и между строками в сетке) больше 0. Если вы не хотите, чтобы между элементами не было пробелов, вы можете просто добавить Spacing="0" атрибут в свой StackLayout.

Ответ №2:

StackLayout значение по умолчанию Spacing равно 10, вам нужно установить его равным 0, если вы не хотите, чтобы интервал между элементами.