java - 关于android的整个屏幕的点击事件
PHP中文网
PHP中文网 2017-04-17 17:48:49
0
6
354

想给整个屏幕设置一个点击事件 当在屏幕上点击的时候 产生一个Onclick事件 但是我给一个

RelativeLayout relativeLayout = (RelativeLayout) findViewById(R.id.rela);
relativeLayout.setOnClickListener(new OnClickListener() {
            
            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub
                
            }
        });
        

但是这样貌似不行啊 在整个屏幕上设置Touch事件的监听用这个方法可以实现 但是单机事件好像不行啊

PHP中文网
PHP中文网

认证0级讲师

모든 응답(6)
Peter_Zhu

RelativeLayout은 기본적으로 뷰이므로 리스너를 설정하는 데 문제가 없습니다. match_parent로 설정하지 않으셨나요?

伊谢尔伦

주의할 점은 다음과 같습니다.
1. 설정한 RelativeLayout이 전체 화면을 채울지 여부는 배경색 설정에 따라 결정됩니다.
2. 이벤트 적용 범위가 있나요? 예를 들어 RelativeLayout에 버튼이 있고 해당 버튼을 클릭하면 해당 버튼 이벤트가 RelativeLayout
이벤트와 충돌합니다. RelativeLayout 이벤트

阿神

기본 터치 이벤트에는 点击事件이 없습니다. 点击事件ViewView 처리 방법에 따라 시뮬레이션됩니다. 터치 이벤트는 부모 touch에서 자식 View으로 전달된 다음 자식 View에서 부모 View으로 버블링됩니다. 이 과정에서 자식 View이 이벤트를 먹을 수 있습니다. 즉, 터치 이벤트를 부모View로 다시 버블링할 수 없습니다. 이벤트를 수신할 수 없으므로 부모View는 클릭 이벤트의 시뮬레이션을 완료할 수 없습니다. View에 대한 해결책은
View 처리 방법을 여러 개 상속하고 다시 작성하고, 클릭 이벤트 시뮬레이션을 직접 완료하는 것입니다. touch

洪涛

relativeLayout.setClickable(true);

巴扎黑

FrameLayout rootview=(FrameLayout)findViewById(android.R.id.content);
rootview.setClickable(true);

左手右手慢动作

Android 이벤트 배포 메커니즘을 살펴보고 작동하지 않는 이유를 이해하는 것이 좋습니다.
이 기능을 구현해야 한다면 모든 뷰의 OnClickListener를 동일한 개체로 설정하세요.

최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿