Articles of touch

Android WebView:检查网页是否消失了

如果我触摸我的WebView,有没有办法检查我的WebView,如果内容(网页)实际使用/消耗了触摸? 在这种情况下我想做的是:如果用户触摸屏幕侧边的边距:如果下面没有按钮,href等(当网页内容没有使用/消耗触摸时):自己使用它(在WebView中)启动自动滚动。 我有权访问/可以更改内容。

当我在外面的对话框附近点击时,setCanceledOnTouchOutside不起作用

我有一个AlertDialog: AlertDialog.Builder builder = new AlertDialog.Builder(context, AlertDialog.THEME_HOLO_LIGHT); ListAdapter adapter = new CustomDialogAdapter(context, itemsList); builder.setAdapter(adapter, listener); builder.setTitle(title); AlertDialog dialog = builder.create(); dialog.setCanceledOnTouchOutside(true); setCanceledOnTouchOutside仅在我点击对话框一定距离时才有效。当我在对话框附近点击时它不会被解雇。你们知道一种方法来解除对话,即使我在对话框附近点击它吗?谢谢。

在视图重叠的情况下控制触摸事件传播

我在尝试控制RecycleView中的触摸事件传播时遇到了一些问题。 所以我有一个RecyclerView填充一组模仿卡片堆栈的CardView(因此它们相互重叠并具有一定的位移,尽管它们具有不同的高程值)。 我目前的问题是每张卡都有一个按钮,因为相对卡位移小于按钮的高度,导致按钮重叠的情况,每当调度触摸事件时,它开始从视图层次结构的底部传播(来自儿童最高的孩子数)。 根据我读过的文章( 这个 , 这个和这个video ),触摸传播取决于父视图中的视图顺序,因此触摸将首先传递给具有最高索引的子项,而我希望仅处理触摸事件通过最顶层视图和RecyclerView的可触摸(它还必须处理拖动和拖动手势)。 目前我正在使用卡片,这些卡片知道他们在父视图层次结构中的位置,以防止错误的孩子处理触摸,但这是非常难看的方式。 我的假设是我必须覆盖RecyclerView的dispatchTouchEvent方法并正确地将触摸事件分派给最顶层的子节点。 但是,当我尝试这种方式时(这也有点笨拙): @Override public boolean dispatchTouchEvent(MotionEvent ev) { View topChild = getChildAt(0); for (View touchable : topChild.getTouchables()) { int[] location = new int[2]; touchable.getLocationOnScreen(location); RectF touchableRect = new RectF(location[0], location[1], location[0] + touchable.getWidth(), location[1] + touchable.getHeight()); if (touchableRect.contains(ev.getRawX(), ev.getRawY())) { return touchable.dispatchTouchEvent(ev); } } return onTouchEvent(ev); […]

隐藏按钮并在触摸时再次显示

我正在开发一个应用程序,我想隐藏按钮,或者说,当我触摸屏幕时按钮不 可见,当我再次触摸屏幕时再次使按钮可见 。 我怎么能做到的?

处理触摸事件 – onInterceptTouchEvent和onTouchEvent

我希望能够在屏幕上的任何位置滑动以调用某个function。 但我也想Linear Layouts中使用Buttons ,我希望能够点击它。 如果我在Button上滑动我想要onInterceptTouchEvent来Intercept对Button的onTouchEvent的调用并执行滑动操作。 如果我只是单击一个Button我不希望调用onInterceptTouchEvent 。 相反,我希望调用Button的onTouchEvent并执行Button click 但是当我尝试实现onInterceptTouchEvent时,我遇到了错误。 这是我的代码: public class Game extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.game_activity); //other code…. } } @Override public boolean onInterceptTouchEvent(MotionEvent event) { switch (event.getAction()) { case MotionEvent.ACTION_DOWN: break; case MotionEvent.ACTION_CANCEL: case MotionEvent.ACTION_UP: swipeScreen(); //if action recognized as swipe then swipe break; case […]

Android – 在视图上检测doubletap和tripletap

我一直在尝试构建一个可以检测双击和三击的敲击检测器。 在我的努力失败后,我在网上搜索了很长时间才find可以使用的东西,但没有运气! 奇怪的是,像这样的东西的图书馆是如此稀缺。 任何帮助?

Android注入触摸事件

我知道这是一个有点重复的问题。 我已经回顾了关于SO和其他几个网站的各种问题,但找不到满足我需求的单一答案。 需求 1)我有X,Y坐标,我想创建MotionEvent并将其发送到最顶层的活动/视图。 2)我必须在我自己的应用程序中注入它。 因此不需要Inject_Events权限 。 3)虽然我有坐标, 我不知道,活动或视图在那个位置。 所以Activity.dispatchTouchEvent对我不起作用。 。 (view.dispatchTouchEvent可以工作,但我不知道视图)。 4) 仪表也无济于事,因为它们没有单一的方法在x,y位置注入触摸事件。 5)InputManager有隐藏方法injectInputEvent但我不知道如何访问injectInputEvent并编译它? 任何帮助赞赏!

Gridview的上移和下移列在该列上触摸

我有一个3×3网格视图。 想象一下如下。 1 2 3 4 5 6 7 8 9 现在我想要实现什么 我希望网格视图列在触摸时向上和向下移动。 考虑一下网格视图的第一列。 那是 1 4 7 现在,如果我触摸此列的任何位置,无论是在1还是4或7上,都可以向上或向下滑动任何一个方向。 然后我想将列移动1或2个位置。 让我明白一下 如果我通过触摸7向上滑动它应该是这样的结果 1 4 2 3 7 5 6 8 9 或者,如果我触摸第二列并向下移动它,那么它将如下所示 1 3 4 2 6 7 5 9 8 如果我移动2个网格单元格的列,那么它看起来就像 1 3 4 6 7 2 9 5 8 对于每一列,我应该能够将列移动一个或两个单元格,具体取决于我滚动列的数量。 还有一件事如果我滚动列很少并且如果它不完全适合任何网格单元到所需位置那么它应该自动适合接近适合位置的网格单元。 我在这里搜索了太多关于堆栈溢出的问题并查询了一个google批次。 但我没有得到我想要的东西。 […]

如何使用JS检测用phonegap的用户触摸

我正在使用phonegap来构建Android应用程序。 我想检测用户的触摸事件,以便popup警报。 但是,如何从javascript调用ontouch事件? 谢谢!

如何隐藏Galaxy Nexus等设备上的软触按钮

我刚刚在Galaxy Nexus上尝试过VLC应用程序。 唯一的问题是,Galaxy nexus上的触摸按钮(背面,家庭和menù)并不像Youtube应用程序中那样隐藏。 如何控制触摸按键的行为? 谢谢