0
我有一个游戏板的应用程序,可以拿起和移动使用mr.gestures平移周围的瓷砖,这很好。给孩子传递手势
我的游戏板是MR.Gestures.AbsoluteLayout
,这是我捕捉平移手势的地方。
如果我将该游戏板作为孩子添加到另一个MR.Gestures.AbsoluteLayout
那么它看起来手势被父母阻止并且不再有效。
有没有办法将手势传递给孩子,或者以某种方式忽略父母的手势?
我有一个游戏板的应用程序,可以拿起和移动使用mr.gestures平移周围的瓷砖,这很好。给孩子传递手势
我的游戏板是MR.Gestures.AbsoluteLayout
,这是我捕捉平移手势的地方。
如果我将该游戏板作为孩子添加到另一个MR.Gestures.AbsoluteLayout
那么它看起来手势被父母阻止并且不再有效。
有没有办法将手势传递给孩子,或者以某种方式忽略父母的手势?
有没有办法通过某种方式将父母手势传递给孩子或忽略手势 ?
对我来说,这个问题只出现在Android ..答案是肯定的:
当父母收到手势事件必须检查手指的x,y是特定儿童的意见中。如果是的话,家长只是忽略了手势。
关于代码,生病只是通过一个事件处理程序来获得想法。就我而言,我有2名儿童(如及书签)在父框架:
//-------------------------------------------------------------------
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
//..
}
这是在所有平台上还是只有一个? – Cheesebaron
您可以使用常规的AbsoluteLayout作为外部容器吗? – Jason
你有没有解决你的问题?我也遇到过MR.Gestures.StackLayout与MR.Gestures.Label对象类似的情况,我需要同时使用两个“Tapped”事件。我的问题只出现在iOS上,点击标签在Android上正常工作。 – xceed