想给整个屏幕设置一个点击事件 当在屏幕上点击的时候 产生一个Onclick事件 但是我给一个RelativeLayout relativeLayout = (RelativeLayout) findViewById(R.id.rela);relativeLayout.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub } }); 但是这样貌似不行啊 在整个屏幕上设置Touch事件的监听用这个方法可以实现 但是单机事件好像不行啊
6 回答

料青山看我应如是
TA贡献1772条经验 获得超8个赞
需要注意的点是:
1.你设置的RelativeLayout 是否布满了整个屏幕,可以通过设置背景颜色来确定。
2.是否有事件覆盖,比如如果RelativeLayout 上面有个按钮,你点击的按钮,按钮事件就会和你的RelativeLayout
事件冲突,这种都会是按钮覆盖了RelativeLayout的事件

翻翻过去那场雪
TA贡献2065条经验 获得超14个赞
在底层触摸事件中是没有点击事件
的,点击事件
是有View
模拟出来的,模拟的过程在View
的touch
处理的几个方法中完成。触摸事件会由父View
传递给子View
,再由子View
冒泡到父View
,这个过程中,子View
是可能吃掉事件的,也就是说,触摸事件无法冒泡回父View
,既然收不到事件,父View
也就无法完成点击事件的模拟。
解决方法是继承重写View
的touch
处理的几个方法,在其中自己完成点击事件的模拟。

回首忆惘然
TA贡献1847条经验 获得超11个赞
FrameLayout rootview=(FrameLayout)findViewById(android.R.id.content);
rootview.setClickable(true);
添加回答
举报
0/150
提交
取消