首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >向儿童传递手势

向儿童传递手势
EN

Stack Overflow用户
提问于 2016-05-03 21:01:23
回答 1查看 1.2K关注 0票数 0

我有一个带有游戏板的应用程序,可以使用mr.gestures拾取和移动平移瓷砖,这是很好的工作。

我的游戏板是一个MR.Gestures.AbsoluteLayout,这就是我捕捉摇摄手势的地方。

如果我把游戏板作为一个孩子添加到另一个MR.Gestures.AbsoluteLayout中,那么这些手势似乎被父母阻止了,并且不再起作用了。

有没有办法把手势传递给孩子,或者在某种程度上忽略父母的手势?

EN

回答 1

Stack Overflow用户

发布于 2017-11-05 16:29:40

有没有办法把手势传递给孩子,或者在某种程度上忽略父母的手势?

对我来说,这个问题只出现在Android上。答案是肯定的:

当父接收到手势事件时,它必须检查手指x,y是否在特定的childs视图中。如果是的话,家长就会忽略这个手势。

关于代码,我只是通过一个事件处理程序来获得这个想法。在我的例子中,在父框架上有两个childs (比如和书签):

代码语言:javascript
复制
    //-------------------------------------------------------------------
    private void OnTapped_MainFrame(object sender, TapEventArgs e)
    //-------------------------------------------------------------------
    {
        //Get parent screen abs pos in pixels
        //We are using native code get absolute screen position
        var ptFrame = DependencyService.Get<INiftyHelpers>().GetViewAbsolutePosition((View)sender);

        //Gets childs (hotspots) screen abs position in pixels
        var ptFav = DependencyService.Get<INiftyHelpers>().GetViewAbsolutePosition((View)hsFav);
        var ptLike = DependencyService.Get<INiftyHelpers>().GetViewAbsolutePosition((View)hsLike);

        //Gets childs (hotspots) rectangles, everything in pixels using screen density
        var rectFav = new Rectangle(ptFav, new Size(hsFav.Width * AppHelper.DisplayDensity, hsFav.Height * AppHelper.DisplayDensity));
        var rectLike = new Rectangle(ptLike, new Size(hsLike.Width * AppHelper.DisplayDensity, hsLike.Height * AppHelper.DisplayDensity));

        //Convert the finger XY to screen pos in pixels
        var ptTouch = new Point(ptFrame.X + e.Center.X * AppHelper.DisplayDensity, ptFrame.Y + e.Center.Y * AppHelper.DisplayDensity); //absolute relative to screen

        //check if withing childs
        if (rectFav.Contains(ptTouch) || rectLike.Contains(ptTouch))
            return; //Ignore input and let childs process their gestures!

        //Process input
        //..

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

https://stackoverflow.com/questions/37014279

复制
相关文章

相似问题

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