2014-01-07 144 views
0

我遇到了問題,我無法弄清楚如何實現它。我在線性佈局和Listview中有很多控件。因爲我在屏幕上有很多控件控件,所以我不得不在我的佈局中實現滾動,但是當我通過列表視圖後,它又有它的滾動條,所以我在屏幕上有2個滾動條。我的問題是如何禁用ListView滾動並查看屏幕中的所有單元格,以便用戶可以從主滾動視圖滾動。禁用ListView滾動

任何幫助,將不勝感激!

回答

0

這是你如何做到這一點:

ListView lv = (ListView)findViewById(R.id.list); // your listview inside scrollview 

lv.setOnTouchListener(new ListView.OnTouchListener(){ 
@Override 
public boolean onTouch(View v, MotionEvent event) 
{ 
    int action = event.getAction(); 
    switch (action) 
    { 
    case MotionEvent.ACTION_DOWN: 
     // Disallow ScrollView to intercept touch events. 
     v.getParent().requestDisallowInterceptTouchEvent(true); 
     break; 

    case MotionEvent.ACTION_UP: 
     // Allow ScrollView to intercept touch events. 
     v.getParent().requestDisallowInterceptTouchEvent(false); 
     break; 
    } 

    // Handle ListView touch events. 
    v.onTouchEvent(event); 
    return true; 
} 
}); 

雖然它確實是不好的做法,把一個ListView的滾動型。它擊敗了ListView的目的。

+0

除非我誤解了這個問題...... –

+0

我會實施並試一試! –

+0

其實listview仍然是可滾動的...我已經用上面的代碼試過了,它仍然是一樣的。我只需要在佈局中查看所有的listview輸入,並使用高級的scrollview來滾動所有的佈局(包括listview單元格)。 –

0
ListView lv; 
lv.canScrollVertically(0);