繁体   English   中英

使布局不可点击但孩子可点击

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM