禁用ListView滚动

时间:2014-01-07 00:37:17

标签: android android-listview scroll android-linearlayout

我遇到了问题,我无法弄清楚如何实现它。我的线性布局和Listview中有很多控件。因为我的屏幕中有很多控件控件所以我必须在我的布局中实现滚动但是在我通过列表视图之后它再次有它的卷轴所以我在屏幕上有2个滚动。我的问题是如何禁用ListView滚动并在屏幕上查看它的所有单元格,以便用户可以从主滚动视图滚动。

任何帮助将不胜感激!

2 个答案:

答案 0 :(得分: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放在ScrollView中确实是不好的做法。它违背了ListView的目的。

答案 1 :(得分:0)

ListView lv;
lv.canScrollVertically(0);