2011-07-20 22 views
6

Ben bir yatay scrollView içinde bir liste için özel ArrayAdapter var.Yaldırmak için iyi çalışıyor, ancak dikey kaydırma için bazı hack yapmak zorunda kaldı. Sadece listView beri iyi bir fikir dikey kaydırma için optimize edilmiş olup olmadığını bilmek istiyorum. Bu hack olmadan kaydırmanın bir yolu var mı?Android Yatay kaydırma içinde ListView için dikey kaydırmaViewView

Kesmek, temelde scrollView (üst sınıf) için touchEvent öğelerini yakalamak ve touchEvent öğesini ListView'e yaymaktır.

scrolLView.setOnTouchListener(new OnTouchListener(){ 

     @Override 
    public boolean onTouch(View arg0, MotionEvent arg1) { 
      lv.setSmoothScrollbarEnabled(true); 
      lv.dispatchTouchEvent(arg1); 
     } 
}); 

Bu, kaydırma işleminin gerçekleşmesine neden olur ve işler çalışır. Sadece hesaba katılması gereken başka şeyler olup olmadığını bilmek istiyorum.

Teşekkür

cevap

3

Kişisel yatay kaydırma görünümü üst sınıfında, yani dokunma olayı sadece kaydırma görünümü için değil, liste görünümü için tanınacak. Böylece liste görünümünü kaydırmak isterseniz, yaptığınız gibi doğrudur.

+0

ben bu gördüğümüz tek sorun ben çapraz gerçekleşmesi doesnt kaydırmak istiyorsanız ........ bunun için tüm hilelerden ..... ben dokunmatik olay olsun kalmamasıdır .. – hamish

1

Kodunuza ek olarak, onu yalnızca bir ScrollView ve birden çok ImageView öğesinin bulunduğu yere değiştirdim.

ScrollView _sv = (ScrollView)findViewById(R.id.scroller); 
_sv.setOnTouchListener(new OnTouchListener() 
{ 
    @Override 
    public boolean onTouch(View v, MotionEvent event) { 
     _iv.setScrollContainer(true); 
     _iv.dispatchTouchEvent(event); 
     return false; 
    } 
}); 
+0

Merhaba, bana yardımcı olmadı. başka bir prosedürü biliyorsanız lütfen shuggest. – Raj

İlgili konular