问题还原:
经常出现的场景,在底部弹出自定义的view,希望通过点击屏幕的其他部分,让弹出的view消失。

思路:
在其他位置写一个主容器,设置其setTouchListener的属性,进行监听。

代码:

        listView.setOnTouchListener(new View.OnTouchListener() {
            /**
             * 解决控件显示之后,
             * 点击其他位置隐藏控件
             */
            @Override
            public boolean onTouch(View v, MotionEvent event) {
                hideKeyboard();
                more.setVisibility(View.GONE);
                emojiIconContainer.setVisibility(View.GONE);
                btnContainer.setVisibility(View.GONE);//隐藏图片 拍照框
                getCurrentType(); //检查键盘
                chatlooker_container_givegift.setVisibility(View.GONE); //赠送礼物隐藏
                return false;
            }
        });

可以把listview换成主容器,比如Linearlayout等。
提供思路如下,仅供大家参考。

github:https://github.com/wangzhongyang00
QQ:425772719
北京麦芽田网络科技有限公司

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐