Android分页GridView / ListView?

时间:2015-12-16 01:32:04

标签: android android-listview android-viewpager android-gridview

我正在寻找一个图书馆或者帮助我解决一些代码。我需要一个GridView或ListView,其行为类似于ViewPager,但会在每次滑动时显示尽可能多的项目。基本上,如果我有300个项目,并且我一次只能显示5个项目,我希望能够向下滑动并显示5,然后在下一次滑动时显示下一个5。我确定这是可能的,但我该如何开始?

2 个答案:

答案 0 :(得分:1)

我找到了解决方案:

基本上,我设置了一个普通的GridView(包含约300个项目)并在您单击它时以编程方式滚动。我不得不使用OnItemClick,因为你不能使用带有AdapterView的常规OnClick监听器(GridView,ListView等)

View.OnTouchListener gridDisableScroll = new View.OnTouchListener() {
            @Override
            public boolean onTouch(View view, MotionEvent motionEvent) {
                if(motionEvent.getAction() == MotionEvent.ACTION_MOVE){
                    return true;
                }
                return false;
            }
        };
AdapterView.OnItemClickListener gridClickScroll = new AdapterView.OnItemClickListener() {

            @Override
            public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
                if(((GridView)adapterView).getLastVisiblePosition()
                         == adapterView.getAdapter().getCount()-1) {
                     //if you're at the bottom, scroll to the top!
                     ((GridView)adapterView).smoothScrollToPosition(0);
                } else {
                    //scroll down the distance of the height of the GridView
                    ((GridView) adapterView).smoothScrollBy(adapterView.getMeasuredHeight(), 700);//700ms
                    //may not be necessary...force draw after scrolling
                    adapterView.invalidate();
                }
            }
        }; 

答案 1 :(得分:0)

在ListView中,设置一个带有setOnScrollListener类的滚动侦听器。然后,在滚动侦听器中,处理方法onScroll

@Override
public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount) {
    // ...
}

请注意,您有参数来确定用户是否已滚动到底部 - 如此,请加载下一页项目并将其添加到适配器。

相关问题