【发布时间】:2017-11-14 00:48:27
【问题描述】:
我有一个StackLayout 和一个ListView,我有一个添加按钮,我想在ListView 正下方显示它。但是ListView 显示了许多未使用的行。只是空行,这迫使我的按钮显示在页面底部。我整天都在搞乱VerticalOptions,但无法让行消失。
这是我的 XAML 代码:
<?xml version="1.0" encoding="utf-8" ?>
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
xmlns:local="clr-namespace:LiquitMobileApp"
x:Class="LiquitMobileApp.MainPage"
Title="Settings"
>
<StackLayout BackgroundColor="LightGray">
<Label Text="Liquit Zones" TextColor="Gray" FontSize="Small" Margin="10"/>
<StackLayout AbsoluteLayout.LayoutBounds="10,10,10,10">
<ListView x:Name="UsingZone" SeparatorColor="LightGray" ItemTapped="ZonesList_ItemTapped" RowHeight="60" BackgroundColor="Green" >
<ListView.ItemTemplate>
<DataTemplate>
<ViewCell>
<ViewCell.ContextActions>
<MenuItem Clicked="OnEdit" Text="Edit" />
<MenuItem Clicked="OnDelete" CommandParameter="{Binding .}" Text="Trash" IsDestructive="True" />
</ViewCell.ContextActions>
<StackLayout Padding="15, 5, 0, 0" Orientation="Horizontal" BackgroundColor="White">
<Image Source="{Binding Image}" HorizontalOptions="Start" AbsoluteLayout.LayoutBounds="250.25, 0.25, 50, 50 "/>
<StackLayout Orientation="Vertical">
<Label Text = "{Binding Name}" FontSize="20" TextColor="Black" AbsoluteLayout.LayoutBounds="0.25, 0.25, 400, 40"/>
<Label Text = "{Binding Address}" TextColor="LightGray" AbsoluteLayout.LayoutBounds="50, 35, 200, 25"/>
</StackLayout>
</StackLayout>
</ViewCell>
</DataTemplate>
</ListView.ItemTemplate>
<ListView.Footer>
<Label />
</ListView.Footer>
</ListView>
<Button Text="Add Zone" TextColor="Black" HorizontalOptions="FillAndExpand" FontSize="Medium" Clicked="Button_Clicked" BackgroundColor="White"/>
</StackLayout>
</StackLayout>
</ContentPage>
列表和按钮的图片:
【问题讨论】:
-
我猜问题出在 ListView 的高度上。如果您没有明确指定,它假定一个默认值太大,当我们很少有项目时......我正在努力解决我的列表视图的 HeightRequest 属性,而没有找到更好的解决方案
-
空行是从绑定的数据源加载的还是默认创建的?
-
@KrzysztofBracha 它们是默认创建的。
-
如果您将列表高度控制为仅填充行,您对添加按钮的期望是什么,根据列表高度在列表下方上下跳转?
-
@YuriS 我已经编辑了我的帖子,你现在可以看到列表和添加按钮,我希望绿色行消失并且添加按钮显示在最后一个 ListItem 下方
标签: c# xaml listview xamarin.forms portable-class-library