Birçok görünüm içeren bir düzen var. Tüm görüntüleme tıklama etkinliklerini devre dışı bırakmanın kolay bir yolu var mı?Düzenin tüm tıklama olayları nasıl devre dışı bırakılır?
cevap
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.
Etkinliğinizde bir clickEnabled
boolean yapın ve tıklatma dinleyicilerinde kontrol edin; eğer yanlışsa, hiçbir şey yapma.
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.
iade türü void – amiekuser
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);
}
}
}
@ FARID geçişi enableDisableView (linView, false); Çalışır –
Bir çekicilik gibi çalıştım. –
@ Mr.Robot Sekmeleri devre dışı bırakmak için https://github.com/roughike/BottomBar üzerinde test edilmiştir. :) –
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.
perfekt cevap! Teşekkürler! – Georg
Görünümde setEnabled(boolean value)
yöntemini çağırmanız gerekir.
view.setClickable(false);
view.setEnabled(false);
Benim için işe yaramazsa, çocuklar hala harekete geçiyor – jose920405
- 1. Dokunma olayları SwipeRefreshLayout'ta nasıl devre dışı bırakılır?
- 2. AWS: Tüm hizmetler nasıl devre dışı bırakılır?
- 3. Bazı koşullarda ActionBar.TabListener nasıl devre dışı bırakılır/devre dışı bırakılır
- 4. Dokunma olayları alırken hareket eşiği nasıl devre dışı bırakılır?
- 5. WPF TreeView'da çift tıklama davranışı nasıl devre dışı bırakılır?
- 6. QPushButton nasıl devre dışı bırakılır
- 7. active_admin'in toplu eylemi nasıl devre dışı bırakılır?
- 8. jQuery - devre dışı tıklama
- 9. Apache2'de mod_deflate nasıl devre dışı bırakılır?
- 10. MacOS'taki vsync nasıl devre dışı bırakılır
- 11. Bir sınıfın veya tüm paketin günlükleyicileri nasıl devre dışı bırakılır?
- 12. Yükleme sırasında sayfadaki tüm düğmeler nasıl devre dışı bırakılır?
- 13. LinearLayout'taki tüm çocuklar nasıl devre dışı bırakılır/etkinleştirilir
- 14. Tüm Jilet görünümü için HTML Kodlaması nasıl devre dışı bırakılır
- 15. Bir düğme dışındaki formdaki tüm denetimler nasıl devre dışı bırakılır?
- 16. ScrollView kaydırması nasıl devre dışı bırakılır?
- 17. Video çekimi nasıl devre dışı bırakılır UIImagePickerController
- 18. Bir kendogrid'de sayfalama nasıl devre dışı bırakılır
- 19. .NET: System.Transactions'da promosyonu nasıl devre dışı bırakılır?
- 20. DrawerLayout Gölge nasıl devre dışı bırakılır
- 21. Emacs'ta x yapıştırma nasıl devre dışı bırakılır
- 22. JQuery Mousewheel: Nasıl devre dışı bırakılır?
- 23. hız günlükleri nasıl devre dışı bırakılır
- 24. GitLab: Otomatik başlangıç nasıl devre dışı bırakılır?
- 25. AngularJS'deki girdilerin kırpılması nasıl devre dışı bırakılır?
- 26. Emacs'te saçak nasıl devre dışı bırakılır?
- 27. Android'de ListView'i tıklayarak nasıl devre dışı bırakılır?
- 28. Django: modelinde sipariş nasıl devre dışı bırakılır
- 29. GWT ValueListBox nasıl devre dışı bırakılır?
- 30. Yammer sohbeti tamamen nasıl devre dışı bırakılır?
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