我希望在我的代码中重新定位一个按钮,以结束列表视图。目前,该按钮始终可见,但我的目标是,只有当用户滚动到列表视图的末尾时,它才能可见。你能指导我如何做到这一点吗?
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
xmlns:viewModels="clr-namespace:XXX.XXX.ExternalDisplay.App.ViewModels"
xmlns:converters="clr-namespace:XXX.XXX.ExternalDisplay.App.Converters"
xmlns:model="clr-namespace:XXX.XXX.ExternalDisplay.Core.Models;assembly=XXX.XXX.ExternalDisplay.Core"
x:Class="XXX.XXX.ExternalDisplay.App.Views.Checklist"
xmlns:xct="http://xamarin.com/schemas/2020/toolkit"
x:DataType="viewModels:ChecklistViewModel"
NavigationPage.HasNavigationBar="False"
BackgroundColor="{StaticResource BlackBackgroundColor}">
<ContentPage.Resources>
<ResourceDictionary>
<xct:InvertedBoolConverter x:Key="InvertedBoolConverter" />
<converters:CheckedColorConverter x:Key="CheckedColorConverter" />
<converters:InverseBooleanConverter x:Key="InverseBooleanConverter" />
</ResourceDictionary>
</ContentPage.Resources>
<StackLayout Padding="5">
<Grid BackgroundColor="{StaticResource MenuBackgroundColor}" ColumnDefinitions="Auto, *, Auto" Padding="8" MinimumHeightRequest="20">
<Label Grid.Column="0" Text="Sina" FontSize="Medium" TextColor="White" HorizontalOptions="Center" VerticalOptions="StartAndExpand" />
<Label Grid.Column="1" Text="Checklist" FontSize="Medium" TextColor="White" HorizontalOptions="Center" VerticalOptions="StartAndExpand" />
<Label Grid.Column="2" Text="Truck" FontSize="Medium" TextColor="White" HorizontalOptions="Center" VerticalOptions="StartAndExpand" />
</Grid>
<Grid>
<ListView ItemsSource="{Binding ChecklistSections}" HasUnevenRows="True"
HorizontalOptions="FillAndExpand" VerticalOptions="FillAndExpand" Margin="0,10,0,0">
<ListView.ItemTemplate>
<DataTemplate x:DataType="model:ChecklistSection">
<ViewCell>
<StackLayout Padding="5">
<Label Text="{Binding ChecklistCategory.Name}" FontAttributes="Bold" Padding="5,0,0,0" FontSize="Medium" TextColor="White" />
<Frame CornerRadius="10" BorderColor="White" BackgroundColor="{StaticResource BlackBackgroundColor}" HasShadow="True" IsClippedToBounds="True" Padding="0">
<StackLayout BindableLayout.ItemsSource="{Binding ChecklistItems}" Padding="5">
<BindableLayout.ItemTemplate>
<DataTemplate x:DataType="model:ChecklistItem">
<StackLayout Padding="5" Orientation="Vertical">
<StackLayout Orientation="Horizontal">
<Label Text="{Binding ItemText}" FontSize="Medium" TextColor="White" VerticalOptions="Center"/>
<StackLayout Orientation="Horizontal" VerticalOptions="End" HorizontalOptions="EndAndExpand">
<CheckBox IsChecked="{Binding Value}" Color="Green" HorizontalOptions="EndAndExpand"/>
<CheckBox IsChecked="{Binding Value, Converter={StaticResource InverseBooleanConverter}}" Color="Red" HorizontalOptions="EndAndExpand"/>
</StackLayout>
</StackLayout>
<Editor IsVisible="{Binding Value, Converter={StaticResource InverseBooleanConverter}}"
Placeholder="Comments" FontSize="Small" HorizontalOptions="FillAndExpand" TextColor="White" BackgroundColor="{StaticResource MenuBackgroundColor}" />
</StackLayout>
</DataTemplate>
</BindableLayout.ItemTemplate>
</StackLayout>
</Frame>
</StackLayout>
</ViewCell>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
</Grid>
<Button Text="{Binding ButtonText}" Command="{Binding SubmitCommand}" BackgroundColor="{StaticResource WarningBackgroundColor}" BorderRadius="10" FontAttributes="Bold" TextColor="White" HorizontalOptions="Center" VerticalOptions="EndAndExpand"/>
</StackLayout>
1条答案
按热度按时间pgky5nke1#
目前,该按钮始终可见,但我的目标是,只有当用户滚动到列表视图的末尾时,它才能可见。你能指导我如何做到这一点吗?
您可以将按钮放入
ListView.Footer
。就像这样:它可以满足您的需求。有关更多信息,您可以参考页眉和页脚。