2011-06-04 19 views

cevap

10

ViewGroup'u, aynı anda etkinleştirmek/devre dışı bırakmak istediğiniz tüm görünümlerle oluşturabilir ve etkinleştirmek/devre dışı bırakmak için setClickable(true/false) numaralı telefonu arayın.

+1

Ve ViewGroup tarafından alt sınıflardan birini kastediyorum. Bu [bağlantı] 'yı kontrol edin (http://developer.android.com/reference/android/view/ViewGroup.html) onClick için – khellang

2

Etkinliğinizde bir clickEnabled boolean yapın ve tıklatma dinleyicilerinde kontrol edin; eğer yanlışsa, hiçbir şey yapma.

-2

onClick yönteminde etkinlik sınıfınızda onClickListener arabirimini uygular ve false değerini döndürürüm. Probleminizi çözmenin en kolay yolu olduğunu hissediyorum.

+9

iade türü void – amiekuser

28

Tüm çocuk tıklama etkinliklerini devre dışı bırakmak için View'u geçebilirsiniz.

public static void enableDisableView(View view, boolean enabled) { 
     view.setEnabled(enabled); 
     if (view instanceof ViewGroup) { 
      ViewGroup group = (ViewGroup)view; 

      for (int idx = 0 ; idx < group.getChildCount() ; idx++) { 
       enableDisableView(group.getChildAt(idx), enabled); 
      } 
     } 
    } 
+0

@ FARID geçişi enableDisableView (linView, false); Çalışır –

+0

Bir çekicilik gibi çalıştım. –

+0

@ Mr.Robot Sekmeleri devre dışı bırakmak için https://github.com/roughike/BottomBar üzerinde test edilmiştir. :) –

17

Aksine çocuklar görmek tüm yineleme olmadığı kadar true dönerse, sen bu tüm alt görünümler için onTouchEvent önce çağrılacak ebeveyn Düzeni görünümünde

@Override 
public boolean onInterceptTouchEvent(MotionEvent ev) { 
    return true; 
} 

için bu işlevi ekleyebilir ve Çocuk görüşleri için onTouchEvent hiç çağrılmayacak. İsterseniz bu durumu açıp kapatmak için bir boolean alan üyesi oluşturabilirsiniz.

+0

perfekt cevap! Teşekkürler! – Georg

3

Görünümde setEnabled(boolean value) yöntemini çağırmanız gerekir.

view.setClickable(false); 
view.setEnabled(false); 
+4

Benim için işe yaramazsa, çocuklar hala harekete geçiyor – jose920405

İlgili konular