想给整个屏幕设置一个点击事件 当在屏幕上点击的时候 产生一个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 pada asasnya ialah paparan, jadi tiada masalah untuk menetapkan pendengar untuknya. Anda tidak menetapkannya kepada match_parent?
Perkara yang perlu diambil perhatian ialah:
1 Sama ada RelativeLayout yang anda tetapkan memenuhi seluruh skrin boleh ditentukan dengan menetapkan warna latar belakang.
2. Adakah terdapat sebarang liputan acara? Contohnya, jika terdapat butang pada RelativeLayout, dan butang yang anda klik, acara butang akan bercanggah dengan acara RelativeLayout anda Acara RelativeLayout
Tiada
点击事件
dalam acara sentuhan asas点击事件
disimulasikan olehView
Proses simulasi diselesaikan dalam beberapa kaedah pemprosesanView
. Peristiwa sentuhan akan dihantar daripada ibu bapatouch
kepada kanak-kanakView
, dan kemudian menggelegak daripada kanak-kanakView
kepada ibu bapaView
Semasa proses ini, kanak-kanakView
boleh makan acara itu. Dalam erti kata lain, acara sentuh tidak boleh Berbuih kembali kepada indukView
, kerana acara itu tidak dapat diterima, indukView
tidak dapat melengkapkan simulasi acara klik. Penyelesaian untukView
ialah mewarisi dan menulis semula beberapa kaedahpemprosesan
View
, dan melengkapkan simulasi peristiwa klik sendiri.touch
relativeLayout.setClickable(true);
FrameLayout rootview=(FrameLayout)findViewById(android.R.id.content);
rootview.setClickable(true);
Saya cadangkan anda melihat mekanisme pengedaran acara Android untuk memahami sebab ia tidak berfungsi.
Jika anda mesti melaksanakan fungsi ini, tetapkan
OnClickListener
semua paparan kepada objek yang sama.