Xamarin MR.Gestures move ContentView

问题描述 投票:0回答:1

我有问题。我正在尝试使用MR.Gestures来移动我的ContentView,所以我尝试了此操作:

var draggableView = new MR.Gestures.ContentView { VerticalOptions = 

LayoutOptions.FillAndExpand };
draggableView.Panning += (dd, ee) => 
{
    if(ee.Touches != null)
    {
        if (ee.Touches.Length == 1)
        {
            draggableView.TranslationX = ee.Touches[0].X;
            draggableView.TranslationY = ee.Touches[0].Y;
        }
    }
};

但是这根本不会移动ContentView。永远不会到达需要翻译的2行,因此ee.Touches始终为null ...

我在做什么错?

c# xamarin xamarin.forms xamarin.android xamarin.ios
1个回答
0
投票

这是我使用的唯一代码

[也许您忘记了将contentview设置为内容。为了更好地执行,我设置了背景色。

您还需要更改TranslationXTranslationY的值。这将使contentvew顺利移动。

更改:

                    draggableView.TranslationX = ee.Touches[0].X;
                    draggableView.TranslationY = ee.Touches[0].Y;

收件人:

                    draggableView.TranslationX += ee.DeltaDistance.X;
                    draggableView.TranslationY += ee.DeltaDistance.Y;

您可以尝试下面的代码。

var draggableView = new MR.Gestures.ContentView
        {
            VerticalOptions = LayoutOptions.FillAndExpand,
            BackgroundColor = Color.Accent
        };

       Content = draggableView;

        draggableView.Panning += (dd, ee) =>
        {
            if (ee.Touches != null)
            {
                if (ee.Touches.Length == 1)
                {
                    //draggableView.TranslationX = ee.Touches[0].X;
                    //draggableView.TranslationY = ee.Touches[0].Y;
                    draggableView.TranslationX += ee.DeltaDistance.X;
                    draggableView.TranslationY += ee.DeltaDistance.Y;
                }
            }
        };

结果:

enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.