安卓 - 左右滑动手势检测

10

我试图为我的第一个程序添加"手势"功能,并且几乎每次搜索都会跳到这个主题:

在网格布局上的快速手势检测

我最终实现了它...但是在我的情况下,我不确定它是否100%正确。

在我的布局中,我有3个水平的LinearLayouts,每个都有5个按钮...所以是3列5个按钮..根据主题,我必须:

"将手势监听器附加到添加到主布局的所有视图;"

这意味着对于所有15个按钮:

"button.setOnTouchListener(gestureListener);"

我能不能只说包含这些按钮的LinearLayouts正在寻找滑动手势?或者因为它们被按钮"隐藏"在后面,所以无法这样做?

因为我还想使用另一个布局来实现这一点,它甚至有更多的按钮..

那么..只是希望能够更简单地侦测屏幕上的向右|向左划动..如果存在的话..

提前致谢

1个回答

15
我能不能说LinearLayout和其上的按钮是在寻找滑动手势?或者因为它们被按钮遮盖住了,所以无法实现?
我认为这正是你所面临的问题,除非你检测所有可视对象的滑动手势。
屏幕上显示的按钮(或其他小部件)越多,用户开始/结束滑动手势时就需要更加准确,也就是说,他们需要在按钮之间的空隙中同时开始/结束。
要检测滑动手势需要起始位置和结束位置-如果用户在按钮上开始和结束(而不是监听滑动手势),那么就不会检测到滑动。同样地,从按钮开始并在“间隙”中结束(反之亦然)也不会检测到有效的滑动,因为只有一个起始/结束点对于“滑动检测”是有效的。
我能想到的最好方法(尽管我自己从未尝试过)是使用GestureOverlayView。这允许您在背景视图上放置透明叠加层,并可以用于检测诸如“滑动”之类的手势,而不需要底层视图了解手势。
请参见开发人员资源中的手势

你好。非常棒的答案。完全让我明白了!很快就要查看GestureOverlayView了。谢谢你。 - cornelyus

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接