我的 Activity 中包含以下代码。在我的xml中,视频 View 位于线性布局内。但是,单击该 View 时,永远不会触发onTouchListener。我尝试将onTouchListener更改为vvLive,但没有执行任何操作。我还尝试将onTouchListener更改为onClickListener,但是什么也没有做。有人知道为什么听众不开火吗?谢谢。

        private VideoView vvLive;
        LinearLayout linearLayoutLiveVideo;

        linearLayoutLiveVideo.setOnTouchListener(new OnTouchListener(){
            public boolean onTouch(View v, MotionEvent event){
                Log.d(TAG, "onTouch entered");
                if(event.getAction() == MotionEvent.ACTION_UP) {
                    Log.d(TAG, "ACTION_UP");

                }
                return false;
            }
        });

编辑:
我意识到上面的代码确实有效。 eclipse 使LogCat困惑。重新启动eclipse之后,LogCat将打印第一个日志“onTouch输入”。但是,未打印“ACTION_UP”。我将MotionEvent更改为MotionEvent.ACTION_DOWN并立即打印LogCat。为什么ACTION_DOWN有效,但ACTION_UP不起作用?

最佳答案

ACTION_UP永远不会发送给您的监听器,因为您返回false,因此不要“使用”该事件。返回true,您将获得开始事件(ACTION_DOWN)以及所有后续事件(ACTION_MOVE,然后是ACTION_UP)。

关于android - onTouchListener不起作用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6279842/

10-10 23:45