我的活动中有以下代码。在我的xml中,视频视图在线性布局中。但是,当单击视图时,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;
}
});编辑:我意识到上面的代码实际上是有效的。日食中有东西把LogCat搞砸了。在我重新启动eclipse之后,LogCat会打印第一个日志"onTouch输入“。然而,"ACTION_UP“没有被打印出来。我现在将MotionEvent更改为MotionEvent.ACTION_DOWN和LogCat打印。为什么ACTION_DOWN能工作,而ACTION_UP却不能工作?
发布于 2011-11-29 23:02:52
ACTION_UP永远不会被发送给您的侦听器,因为您返回false,因此不要“消耗”事件。返回true,您将得到开始事件(ACTION_DOWN)以及所有后续事件(ACTION_MOVE和ACTION_UP)。
发布于 2011-06-08 13:59:13
像这样修改代码并尝试:
@Override
public boolean onTouchEvent(MotionEvent event) {
Log.d(TAG, "onTouch entered");
if(event.getAction() == MotionEvent.ACTION_UP) {
Log.d(TAG, "ACTION_UP");
return super.onTouchEvent(event);
else
return false;
}发布于 2015-03-29 10:51:56
我面对这个问题,解决的方法是:
1-在xml中,将下面的VideoView属性设置为
Android:clickable=“真”
2-简单地在您的代码集setOnClickListenerto中使用VideoView,它将像魅力一样工作:
videoView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent=new Intent(CinemaDetailsActivity.this , FullScreenPlayerActivity.class);
intent.putExtra("url" , getIntent().getStringExtra("url"));
startActivity(intent);
}
});https://stackoverflow.com/questions/6279842
复制相似问题