如何使列表视图一次滚动一行

时间:2011-12-12 14:11:51

标签: android listview

我通过扩展BaseAdapter来使用自定义列表视图。每行有一个图像占据列表视图高度的50%,这样我的列表视图一次显示两行。 我想要的是,当我慢速或快速滚动时,无论多慢或多快,列表视图应仅滚动一个项目,不应显示半行......

我尝试的是使用smoothScrollTo(int),但它没有解决我的问题。通过平滑滚动,它仍然会抖动。

我的目标sdk版本是7。

2 个答案:

答案 0 :(得分:1)

一点一点地去:

mList.setOnScrollListener(new OnScrollListener() {
        public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount) {}

        public void onScrollStateChanged(AbsListView view, int scrollState) {
            if (scrollState == OnScrollListener.SCROLL_STATE_IDLE) 
            {                   
                mList.getRefreshableView().setSelection(mList.getRefreshableView().getFirstVisiblePosition()+1);
            }
        }
    });

答案 1 :(得分:0)

在阅读了您的要求后,我觉得您可能更适合自定义视图切换器,因为列表视图窗口小部件会在滚动时将其自身转换为位图。转到滚动条类来改变列表滚动的方式并不容易。