具体使用下面的代码,有没有办法修改,让这个新创建的view下的activity不接收任何手势?
View v1 = new View(this);
WindowManager.LayoutParams params = new WindowManager.LayoutParams(
1000,
50,
WindowManager.LayoutParams.TYPE_SYSTEM_ALERT,
WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE |
WindowManager.LayoutParams.FLAG_LAYOUT_IN_SCREEN,
PixelFormat.OPAQUE);
params.gravity = Gravity.BOTTOM;
WindowManager wm = (WindowManager) this.getSystemService(Context.WINDOW_SERVICE);
wm.addView(v1, params);
最佳答案
将 onTouchEvent
方法添加到顶部位置的 View ,然后返回 true。 True 将告诉事件冒泡该事件已被消耗,因此防止事件冒泡到其他 View 。
protected boolean onTouchEvent (MotionEvent me) {
return true;
}
对于 v1
你会做一个导入:
import android.view.View.OnTouchListener;
然后设置onTouchListener:
v1.setOnTouchListener(new OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
return true;
}
});
关于Android:如何防止任何触摸事件从 View 传递到其下方?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8433387/