- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在 Xamarin.Forms(Android 和 iOS)中制作消息传递应用程序。
消息显示在 ListView
中。
现在我想添加一个新功能。当我将消息气球拖到一边时,它会显示消息信息。
用户按住消息,向右或向左拖动。
我尝试在气球上使用 PanGestureRecognizer
(在此上下文中为 PGR)实现此功能,但它部分起作用。
我可以在阈值之前拖动、释放、释放,而且很管用!但是,如果我在水平拖动的同时垂直拖动,ListView
“窃取”了平移手势,PGR“忘记”了它并且不返回任何事件。所以气球只是保持在那里,稍微偏向一边。
如果我在不向下拖动的情况下松开手指,就不会发生这种情况。
它可能看起来很明显:“当手指被“遗忘”时,你为什么不让它回去呢?”
因为当问题发生时,它不会生成另一个事件。 (并且 ListView
没有 Scrolled
事件作为 ScrollView
)
当我尝试使用 PGR 时,ListView
不起作用。但是侧拖有效。看起来 PGR 总是先捕获平移手势。
有没有办法让PGR和ListView
同时工作?
最佳答案
对于 iOS 你可以尝试添加:
Application.Current.On<iOS>().SetPanGestureRecognizerShouldRecognizeSimultaneously(true)
引用文献:https://github.com/xamarin/Xamarin.Forms/issues/2299#issuecomment-399578363 https://learn.microsoft.com/ru-ru/xamarin/xamarin-forms/platform/ios/application-pan-gesture
对于 Android,我用计时器做了一个解决方法:
private System.Threading.Timer timer;
private void PanGesture_PanUpdated(object sender, PanUpdatedEventArgs e)
{
var statusType = e.StatusType;
if (statusType != GestureStatus.Started && timer == null)
{
// after gesture was broken down, next event will be with wrong
// status, like the gesture is continues. So, reset status to Started,
// consider it is new gesture:
statusType = GestureStatus.Started;
}
var slidingView = yourView;
switch (statusType)
{
case GestureStatus.Started:
// do any initializations..
timer = new System.Threading.Timer(_ => {
finishTranslation(slidingView);
});
break;
case GestureStatus.Running:
{
// do any animations..
timer.Change(TimeSpan.FromMilliseconds(100), TimeSpan.Zero);
}
break;
}
}
private void finishTranslation(View slidingView)
{
timer = null;
// finish your animation
}
但是点击手势的问题仍然存在((
关于android - ListView 内的 PanGestureRecognizer (Xamarin.Forms),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48689198/
是否可以为 PanGestureRecognizer 设置边框,使其只能在有限区域/ View 中平移图像? 非常感谢 ;) 最佳答案 您可以实现 UIPanGestureRecognizer 的委托
我想将 PanGestureRecognizer 添加到 UIViewController 的 UIView。我将 View 分成九个相等的部分,并由它们创建一个 UIViews。我还在每个部分添加了
我是一名新程序员,正在开发一个简单的演示 iOS 程序,我使用 SceneKit 来渲染场景。 我想旋转相机以查看场景的不同视角。但原来的相机控制有点棘手。特别是当我想朝一个方向旋转场景时。例如如果我
我正在使用 ios-charts库,当用户停止在图表上平移时,我需要做一些特殊的逻辑。该库将 panGestureRecognized 方法定义为 fileprivate,因此我无法子类化/覆盖它。它
我正在使用 pangesturerecognizer 在屏幕上移动对象。 如何为对象创建一个边界,使其不超过屏幕顶部的某个点?我正在考虑使用此 imageView.frame.origin.y > 0
我正在尝试将 seektotime 与 Pangesture 识别器一起使用。但它没有按预期进行搜索。 let totalTime = self.avPlayer.currentItem!.durat
我在 subview Controller 的容器 View 上设置了一个 PanGestureRecognizer 。这本质上是一个抽屉 View ,所以我希望 subview Controller
我刚刚开始为 tvOS 构建第一个应用程序,我对它的手势识别能力很好奇。 我的目标是了解手指在 Apple TV Remote 上滑动的方向和位移。 我知道如何检测点击或滑动,甚至是滑动的方向,但不知
我一直在寻找这个问题的解决方案,但没有找到。所以我在我的项目中使用 SWRevealViewController 作为侧边栏菜单,但我希望当用户开始从 View 的左边缘触摸时,侧边菜单会打开。我想要
我在 UIViewController 中有一个 UIScrollView,它由 segue 模态显示,另外一个 UIPanGestureRecognizer 确实关闭了 View Controlle
我正在 Xamarin.Forms(Android 和 iOS)中制作消息传递应用程序。 消息显示在 ListView 中。 现在我想添加一个新功能。当我将消息气球拖到一边时,它会显示消息信息。 用户
我目前有一个 panGesture 识别器附加到也启用了分页的 collectionView。 问题是 panGesture 覆盖了分页。如果可能的话,我希望在 panGesture 之前执行分页操作
我很难让以下内容起作用:我有一个水平 ScrollView ,其中放置了一个网格。我想让网格接收平移手势。 我的 XAML:
我有一个可滚动的 View ,我需要无需滚动主视图即可触发的手势识别器。 我用过这段代码: UISwipeGestureRecognizer *upRecognizer = [[UISwipe
当 touchesBegan() 时,我通过在手指位置创建一个 UIView 在屏幕上创建了一个圆圈: 在 ViewController 中: override func touchesBegan(t
我正在尝试使用 CGAffineTransform 旋转我拥有的 ImageView。基本上,我想要发生的是每次 x 坐标增加时,我希望 ImageView 旋转多一点。 我计算了一下,我希望 Ima
我正在尝试“裁剪”imageView 内的图像。裁剪的含义:如果用户向左平移,则图片将从右侧向左侧裁剪。因此,当用户平移到右侧时,图片将完全显示,如果用户平移到最左侧,图片将不可见。 我尝试了以下方法
我不想在我的应用程序中使用 SWRevealViewController,因为我按照给定链接“https://www.youtube.com/watch?v=5SUV1YY2yxQ”中的步骤进行操作。
我有 2 个 View 并使用以下代码检测它们的碰撞。如果物体移动缓慢,它工作正常,即它给出运动中的坐标。但是,当通过手势高速抛出 View 时,中间坐标会被忽略。我只得到初始坐标和结束坐标。当 2
我有一个带有 PanGestureRecognizer 的 UIImageView。当我拖到 ImageView 之外时,我想认为平移已结束,但显然 GestureRecognizer 继续触发,就好
我是一名优秀的程序员,十分优秀!