2011-07-20 133 views
6

我有一个自定义的ArrayAdapter为一个水平scrollView.The水平滚动工作正常,但对于垂直滚动我不得不做一些黑客。 我只想知道它是否是一个好主意,因为listView已经针对垂直滚动进行了优化。 有没有办法滚动没有这个黑客?Android垂直滚动ListView水平scrollView

hack基本上是为scrollView(父类)捕获touchEvent并将touchEvent传播到ListView。

scrolLView.setOnTouchListener(new OnTouchListener(){ 

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

这会导致滚动发生并且事情有效。 我只想知道是否还有一些事情需要考虑。

感谢

回答

3

你的水平滚动视图是父类,所以只能滚动视图,而不是列表视图触摸事件将被识别。所以如果你想让列表视图滚动,你做的方式是正确的。

+0

我看到的唯一问题是,如果我想对角滚动它不会发生........任何技巧..... .....我没有得到触摸事件.. – hamish

1

除了您的代码,我已将其修改为只有一个ScrollView和多个ImageView项目。

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

嗨,它并没有帮助我。如果您知道任何其他程序,请回复。 – Raj