2014-12-02 34 views
5

RecyclerView içine tıkladığımda neden click olaylarının balonu şişirmediğini merak ediyorum. üst View birisi görünümüne tıklarsa bazı eylemi gerçekleştirmek için kayıtlı bir OnClickListener sahipkenTıklayın olaylar, geri bildirim içermez RecyclerView

Benim senaryo, bazı TextView s göstermek için basit RecyclerView kullanır. Örn. Bir TextView tıklama olayı, ebeveyne doğru düzgün şekilde kabarcıklar. Ancak RecyclerView'u tıklarsam tıklama tıklanmaz. Tuhaf olan şey, OnClickListener'u doğrudan RecyclerView'a ayarlamış olsam da asla ateşlemez. Sanırım bütün kötülüklerin köküdür.

Neden RecyclerView'um hiçbir tıklama olayı almıyor? Neden ebeveyn herhangi bir tıklama etkinliği almıyor?

Hiyerarşi şuna benzer:

- View (has an OnClickListener) <- Why no clicks? 
    - RecyclerView (clickable=false) 
     - TextView 
     - TextView 
     .... 

Ben setFocusable() ve setClickable() ama şans olmadan denedi.

PS: Benim şu anki çözüm RecyclerView içindeki her TextView bir OnClickListener ayarlar ve manuel performClick() kullanarak ana görünümüne tıklayın yaymak için getParent() kullanır.

+0

, haklısın RecycleView kabarcık olaylar değildir. – ByteArtisan

cevap

0

RecyclerView, RecyclerView.OnItemTouchListener için özel sınıf işleyicisini kullanıyorum. Tüketici sınıfından eklenebilirim. İşte işleyici sınıfının varsayılan uygulamadır.

recyclerView.addOnItemTouchListener (yeni RecyclerView.OnItemTouchListener() {i şey eksik değilim Eğer

 @Override 
     public boolean onInterceptTouchEvent(RecyclerView rv, MotionEvent e) { 
      //Put your code here. 
      //Called 2 times per touch, on pressdown and on release. 

      return false; //true will disable scroll view. 
     } 

     @Override 
     public void onTouchEvent(RecyclerView rv, MotionEvent e) { 
      setDefaultBottomBar(); 
     } 

     @Override 
     public void onRequestDisallowInterceptTouchEvent(boolean disallowIntercept) { 

     } 
    }); 
İlgili konular