想给整个屏幕设置一个点击事件 当在屏幕上点击的时候 产生一个Onclick事件 但是我给一个
RelativeLayout relativeLayout = (RelativeLayout) findViewById(R.id.rela);
relativeLayout.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
}
});
但是这样貌似不行啊 在整个屏幕上设置Touch事件的监听用这个方法可以实现 但是单机事件好像不行啊
RelativeLayout は本質的にビューであるため、リスナーを設定しても問題ありません。 match_parent に設定しませんでしたか?
注意点は次のとおりです。
1. 設定した RelativeLayout が画面全体に収まるかどうかは、背景色の設定によって決まります。
2. イベントのカバレッジはありますか? たとえば、RelativeLayout にボタンがあり、クリックしたボタンが RelativeLayout
イベントと競合します。 RelativeLayout イベント
基になるタッチ イベントには
点击事件
がありません。点击事件
はView
のView
処理のいくつかのメソッドでシミュレートされます。タッチ イベントは親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
を同じオブジェクトに設定します。