2

我有一个键盘视图,我需要跟踪ACTION_MOVE手指何时离开键盘视图。问题是,一旦它超出了它就会停止报告正确的值并在我的手指在键盘视图上方时Y继续报告最后一个值。Y

对于调试,我只添加了一个简单onTouchListener的,所以我知道服务的其余部分不会以任何方式干扰触摸事件。

setOnTouchListener(new OnTouchListener() {

        @Override
        public boolean onTouch(View v, MotionEvent event) {
            Log.v("YBugDebug", "getRawY() = "+ event.getRawY()+"");
            return true;
        }
});

我已经调试了好几天了,不知道为什么。有什么建议么?我试过getY() getRawY()了,将监听器附加到根视图。

奇怪的是,Y当我的 ICS 设备处于横向状态时,Gingerbread 中的值会正确报告。如下所述,视图似乎没有响应悬停事件。

我尝试将其添加onTouch到根视图,但结果完全相同。Y为什么它可以检测到移动但不能检测到正确的轴,这真是令人难以置信。

这是问题的外观:

4

2 回答 2

0

甚至在所有屏幕上都获得触摸的一种方法是使用 frameLayout 包装整个内容,并在其上使用 setOnTouchListener,同时为其 onTouch() 方法返回 false。

我很确定我已经阅读过类似的替代方法,但我不记得它是什么。也许使用您已经自动拥有的视图。也许 findViewById( R.id.content) 或 getRootView() ,但我不确定它们。

于 2013-02-17T23:39:11.980 回答
0

我不是这方面的专家,但您是说 ACTION_MOVE 事件是在您的 KeyboardView 范围之外触发​​的吗?

于 2013-02-17T13:45:16.577 回答