首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >茜素MR.Gestures移动ContentView

茜素MR.Gestures移动ContentView
EN

Stack Overflow用户
提问于 2019-12-13 15:41:21
回答 1查看 115关注 0票数 0

我有个问题。我试图使用MR.Gestures移动我的ContentView,所以我尝试了如下:

代码语言:javascript
复制
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。需要翻译的两行永远不会到达,所以ee.Touches总是null.

我做错了什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-12-16 09:47:44

,这是我使用它的唯一代码

也许您忘记将contentview设置为Content。为了更好的表演,我设置了背景色。

您还需要更改TranslationXTranslationY的值。这将使内容顺利进行。

变更:

代码语言:javascript
复制
                    draggableView.TranslationX = ee.Touches[0].X;
                    draggableView.TranslationY = ee.Touches[0].Y;

To:

代码语言:javascript
复制
                    draggableView.TranslationX += ee.DeltaDistance.X;
                    draggableView.TranslationY += ee.DeltaDistance.Y;

你可以试试下面的代码。

代码语言:javascript
复制
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;
                }
            }
        };

结果:

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59325710

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档