2011-07-20 165 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