欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  移动技术

Android GridView实现滚动到指定位置的方法

程序员文章站 2023-10-28 20:10:10
当一个列表项目很多,并且每个项目可以进入到其它activity或者fragment时,保存之前列表的位置是一个比较不错的功能, 今天研究了一下怎么保存浏览位置,发现gri...

当一个列表项目很多,并且每个项目可以进入到其它activity或者fragment时,保存之前列表的位置是一个比较不错的功能,

今天研究了一下怎么保存浏览位置,发现gridview和它的父类中有4个相关的方法:

复制代码 代码如下:

public void smoothscrolltoposition (int position)

滚动到position指定的位置,api level 11之下可用

*当你滚动完后,返回列表,能正常滚动,但是你再次从列表的项目返回后,滚动失效,就是只能滚动一次,我认为这是一个bug。然后我在miui2.3的rom上测试,不能正常滚动。

复制代码 代码如下:

public void smoothscrolltoposition (int position, int boundposition)

滚动到position指定的位置,然后判断position+boundposition是否会超出adapter中的总项目数,如果超出,则退回到

总数-boundposition的位置显示。

*存在的问题跟上面的那个方法一样

复制代码 代码如下:

public void smoothscrolltopositionfromtop (int position, int offset, int duration)

滚动到position项目的位置,并且position项目距离girdview上边的距离为offset个像素,duration指定滚动需要的时间(毫秒)

*不存在只能滚动一次的问题,但是最低的api level需要11。

复制代码 代码如下:

public void smoothscrolltopositionfromtop (int position, int offset)

效果跟第三个方法一样,但是采用api默认的时间,最低api level 11。

另:

viewpager可以通过setcurrentitem(int position)设置当前显示哪一个fragment。