我有gridview,我需要做两件事:
当我向下滚动时,我想找到最后一个可见位置,例如int index = GridView.getLastVisiblePosition();
当我向上滚动时,我想找到第一个可见位置,例如int index = GridView.getFirstVisiblePosition();
我知道我可以使用以下代码,但我不确定如何以及在何处为ScrollUp和ScrollDown编写代码.请帮我.我是Android新手.
private OnScrollListener onAnsweRSScrolled = new OnScrollListener() { @Override public void onScrollStateChanged(AbsListView view,int scrollState) { } }
解决方法
在你的活动中创建全局变量myLastVisiblePos,并为每个FirstVisiblePosition保存,当onScroll事件检查当前FirstVisiblePosition时保存的FirstVisiblePosition如果greate比上次保存的FirstVisiblePosition那么scrollUp如果小则滚动:
int myLastVisiblePos;// global variable of activity //save first value when you create GridView GridView gridView = (GridView) gv.findViewById(R.id.grid_view); myLastVisiblePos = gridView.getFirstVisiblePosition(); gridView.setOnScrollListener( new OnScrollListener() { @Override public void onScroll(AbsListView view,int firstVisibleItem,int visibleItemCount,int totalItemCount) { int currentFirstVisPos = view.getFirstVisiblePosition(); if(currentFirstVisPos > myLastVisiblePos) { //scroll down } if(currentFirstVisPos < myLastVisiblePos) { //scroll up } myLastVisiblePos = currentFirstVisPos; } });