如何在所有平台上使用xamarin表单实现Tinder Style或基于堆栈的刷卡动画

时间:2018-02-15 16:14:55

标签: xamarin.forms

经过充分的研究,我能够使用Xamarin表格实现它。

Android有点棘手,因为当用户滑动到某个区域时,它没有在 OnPanUpdated 事件中触发“GestureStatus.Completed”,但是android触发了Tap手势此实例中的事件而不是Pan手势事件。因此需要通过收集卡的坐标直到它被刷到的位置来单独处理Android代码。

另外要注意Android,我在现有堆栈的顶部卡上使用了额外的额外布局,不透明度为0.0,这样我们可以在用户进行平移或滑动时获得平滑过渡。实际上,用户使用visible == true滑动额外的布局但是不透明度为0.0,基于这种额外的透明布局移动,我们将在Tap或Pan手势方法中接收事件,并且我们可以在透明下的现有堆栈中移动实际顶部卡片布局。

iPhone Windows Phone 中,它会完美触发 GestureStatus.Running GestureStatus.Completed ,因此不需要创建一个黑客额外的层。代码段粘贴在下面。

Android示例代码,可实现平移或平滑滑动: “

private AbsoluteLayout createGestureSupportlayout()
        {
            AbsoluteLayout gestureSupportlayout = new AbsoluteLayout();
            gestureSupportlayout.WidthRequest = frameWidth;
            gestureSupportlayout.HeightRequest = frameHeight;
            gestureSupportlayout.VerticalOptions = LayoutOptions.Center;
            gestureSupportlayout.HorizontalOptions = LayoutOptions.Center;
            gestureSupportlayout.Opacity = 0.0;
            //In andriod, make Gesture support layout visible if invoices are present
            gestureSupportlayout.SetBinding(IsVisibleProperty, "GestureSupportLayoutVisible");
            return gestureSupportlayout;
        }

2 个答案:

答案 0 :(得分:0)

您可以使用此插件:SwipeCardView是一个轻量级的MVVM友好用户控件,可将Tinder风格的刷卡视图带入Xamarin.Forms应用程序。

在你看来xaml:

_blank

有关此库的设计,实施和使用的详细说明,请查看我的博文:Create Tinder-like UI in Xamarin Forms using SwipeCardView.

答案 1 :(得分:0)