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

想给整个屏幕设置一个点击事件 当在屏幕上点击的时候 产生一个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 に設定しませんでしたか?

いいねを押す +0
伊谢尔伦

注意点は次のとおりです。
1. 設定した RelativeLayout が画面全体に収まるかどうかは、背景色の設定によって決まります。
2. イベントのカバレッジはありますか? たとえば、RelativeLayout にボタンがあり、クリックしたボタンが RelativeLayout
イベントと競合します。 RelativeLayout イベント

いいねを押す +0
阿神

基になるタッチ イベントには 点击事件 がありません。点击事件ViewView 処理のいくつかのメソッドでシミュレートされます。タッチ イベントは親 touch から子 View に渡され、その後、子 View から親 View にバブルアップされます。このプロセス中に、子 View がイベントを食べる可能性があります。つまり、タッチイベントは親 View にバブリングバックできません。イベントを受信できないため、親 View はクリックイベントのシミュレーションを完了できません。 Viewの解決策は、
View処理のメソッドをいくつか継承して書き換えて、クリックイベントのシミュレーションを自分で完成させることです。 touch

いいねを押す +0
洪涛

relativeLayout.setClickable(true);

いいねを押す +0
巴扎黑

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

いいねを押す +0
左手右手慢动作

なぜ機能しないのかを理解するには、Android イベント配布メカニズムを調べてみることをお勧めします。
この関数を実装する必要がある場合は、すべてのビューの OnClickListener を同じオブジェクトに設定します。

いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート