微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何在 xamarin 表单中使用滑动删除功能创建列表视图

如何解决如何在 xamarin 表单中使用滑动删除功能创建列表视图

如何在 xamarin 表单中创建具有滑动删除功能的列表视图,而无需使用 swipeview 控件。 我想要一个带有滑动删除的列表视图页面,如果单元格项目状态为“待处理”,当用户向右滑动单元格时需要在列表视图中显示删除图标。我使用 swipeview 控件得到了相同的结果,但该控件是“实验性的”。有没有其他相同的解决方案。请帮忙解决这个问题。

解决方法

这是通过 SwipeGestureRecognizer 的解决方法。至于“删除图标”,您可以使用自定义按钮,并将其“IsVisible”设置为“false”以隐藏它。

<Grid.RowDefinitions>
    <RowDefinition Height="40" />
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
    <ColumnDefinition Width="Auto" />
    <ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<Label Text="{Binding Name}"
        FontAttributes="Bold" />
<Button x:Name="buttontest"
        HorizontalOptions="End"
        HeightRequest="10"
        WidthRequest="60"
        BackgroundColor="Red"
        CornerRadius="20"
        Text="Del"
        Grid.Row="0"
        Grid.Column="1"
        Clicked="Button_Clicked"
        IsVisible="false"/>
</Grid>

向 ViewCell 中的网格添加 SwipeGestureRecognizer。

<Grid.GestureRecognizers>
    <SwipeGestureRecognizer Direction="Right" Swiped="SwipeGestureRecognizer_Swiped" />
</Grid.GestureRecognizers>

如果滑动,则显示按钮。

private void SwipeGestureRecognizer_Swiped(object sender,SwipedEventArgs e)
{
    Button button = (sender as Grid).Children.FirstOrDefault(c => Grid.GetRow(c) == 0 && Grid.GetColumn(c) == 1) as Button;
    button.IsVisible = true;
}

如果按钮被点击,隐藏按钮。

private void Button_Clicked(object sender,System.EventArgs e)
{
    // hide button
    (sender as Button).IsVisible = false;
    // some other operations
}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。