[英]Make Layout Non Clickable But Children Clickable
我一直在研究系统叠加层,发现使用WindowManager.LayoutParams x和y在屏幕上移动我的imageview很麻烦,因此我决定制作一个具有设备高度的RelativeLayout来保存我的imageview。 唯一的问题是我要使Layout不可单击,以便可以单击其下方的活动,但不能单击imageview本身,因为它启动了活动。 反正有这样做吗? 到目前为止,这是我的代码
final RelativeLayout floaterLayout = new RelativeLayout(getApplicationContext());
//this layout makes the relativelayout non clickable so that the activity below it can be clicked but it doesn't allow any children to be clicked either.
final WindowManager.LayoutParams params = new WindowManager.LayoutParams(WindowManager.LayoutParams.WRAP_CONTENT,
WindowManager.LayoutParams.WRAP_CONTENT, WindowManager.LayoutParams.TYPE_SYSTEM_ERROR,
WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED + WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD
+ WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE + WindowManager.LayoutParams.FLAG_LAYOUT_IN_SCREEN + WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL + WindowManager.LayoutParams.FLAG_NOT_TOUCHABLE, PixelFormat.TRANSLUCENT);
params.height = 2560;
params.y = 0;
floaterLayout.setBackgroundColor(Color.RED);
floaterLayout.setAlpha(0.5f);
floaterLayout.setLayoutParams(params);
((WindowManager) getSystemService(Context.WINDOW_SERVICE)).addView(floaterLayout, params);
ImageView view = new ImageView(getApplicationContext());
Util.setImageDrawable(view, R.drawable.floater_dots);
floaterLayout.addView(view);
view.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//do stuff
}
});
@Nicolas您正在创建一个未添加到父布局中的相对布局。只需创建一个带有relativeLayout和imageView的xml。 用Java代码设置imageView的onClickListener。 通过此操作,父级布局将不可点击,只有imageview将可单击
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.