android listview 移动到顶部,android listview滚动到顶部
1.为了实现类似IOS点击状态栏,列表回滚到顶部的功能(要平滑滚动效果),android上点击一个按钮或是图片什么的也可以让listview一次性滚动到顶部(滑动太多页时,一次可能滚不到顶部,使用handler定时监听,继续滚动,直至回到顶部)
public static void scrollToListviewTop(final AbsListView listView)
{
listView.smoothScrollToPosition(0);
final Handler handler = new Handler();
handler.postDelayed(new Runnable()
{
@Override
public void run()
{
if (listView.getFirstVisiblePosition() > 0)
{
listView.smoothScrollToPosition(0);
handler.postDelayed(this, 100);
}
}
}, 100);
}
此方法的优点是:适用于任何的listview(item单一样式的,多种样式的都可以),而且不存在界面显示问题
缺点是:滑动数据量很大时,回滚时间会比较长。
2.对于单一样式且数据较少的listview,滑动停止时可以计算出滚动的高度,回滚时使用listView.smoothScrollBy(getScrollY(), 500);
listview滚动高度原理是假设每个item的高度是一定的(多数情况下的确如此),那么只要知道当前在第几个item,就可以计算出总的高度,因为第一个可见item的一部分可能已经移出了边界,所以再通过mListView.getChildAt(0)获得第一个子view,使用getTop()方法计算出这个偏差(得到的一般是负数)。因为是回滚,所以最后滚动距离要是负数,另外可能会有一定的误差,适当的加上个负数,综合起来就可以计算出当前ListView的滚动高度。这种滚动效果比较自然,快到顶部时滚动速度越来越慢,最后停止。
public int getScrollY()
{
View c = listView.getChildAt(0);
if (c == null)
{
return 0;
}
int firstVisiblePosition = listView.getFirstVisiblePosition();
int top = c.getTop();
if (firstVisiblePosition == 0)
{
return top;
}
else
{
return top - (firstVisiblePosition - 1) * c.getHeight() - 17;
}
}
3.如果只要求回到顶部,不需要滚动效果的话,很简单,只需要调用listview.setSelection(0)就ok了。
原文:http://www.cnblogs.com/july2012/p/4081929.html
android listview 移动到顶部,android listview滚动到顶部相关推荐
- JavaScript中的scrollTop(js中的scrollTop,滚动到顶部,javascript滚动到顶部)
简述:scrollTop是JavaScript中一个非常有用且重要的方法,它用于获取或设置元素的垂直滚动条位置,实现各种滚动相关的功能,无论是回到顶部.滚动到指定位置还是监听滚动事件,都需要用到scr ...
- android列表滑到底部,Android中判断listview是否滑动到顶部和底部的实现方法
今天实现listview的下拉刷新和上拉加载的时候,遇到了一个问题,*就是说需要根据listview中滑动的位置来进行下拉刷新和上拉加载.* 具体点,只有当我的listview滑动到最顶部的时候,这时 ...
- Android自定义ListView示例,以创建不可滚动的ListView
In this tutorial we'll override the ListView class to suit it according to our requirements in the a ...
- android布局 listview,安卓布局如何让 listview 和listview上的布局一起滚动
xml布局如下 但是不能实现我说的listview 和上面布局一起滚动 android:layout_width="match_parent" android:layout_hei ...
- android listview左右滑动动画效果,Android基于ListView实现类似QQ空间的滚动翻页与滚动加载效果...
本文实例讲述了Android基于ListView实现类似QQ空间的滚动翻页与滚动加载效果.分享给大家供大家参考,具体如下: 1. 滚动加载 listView.setOnScrollListener(n ...
- android listview自定义顶部,Android自定义Adapter的ListView的思路及代码
在开发中,我们经常使用到ListView这个控件.Android的API也提供了许多创建ListView适配器的快捷方式.例如ArrayAdapter.SimpleAdapter和SimpleCurs ...
- [转载]Android: 如何实现ScrollView中含有ListView?
原文地址:Android: 如何实现ScrollView中含有ListView?作者:mailofzxf ListView本身就含有ScrollView,因此把ListView放到ScrollView ...
- Android 使用NineOldAndroids实现绚丽的ListView左右滑动删除Item效果
转载请注明本文出自xiaanming的博客(http://blog.csdn.net/xiaanming/article/details/18311877),请尊重他人的辛勤劳动成果,谢谢! 今天还是 ...
- Android 使用Scroller实现绚丽的ListView左右滑动删除Item效果
本文出自xiaanming的博客(http://blog.csdn.net/xiaanming/article/details/17539199) 我在上一篇文章中Android 带你从源码的角度解析 ...
最新文章
- 热力图和相关系数分析
- Docker过程汇总
- DB2 数据库清表语句
- windows网关详解 【了解网关的重要性,增加网络性能】【FreeXploiT综合文】
- SQL Server 2005 Beta 2 Service Broker: Stored Procedure acts as a service program
- linux代码折叠,Sublime代码折叠
- 苹果计算机 win10,苹果电脑怎么安装Win10系统?
- matlab plot bo,Matlab的plot~各种颜色和线形
- 无主之地计算机中丢失,”无主之地3“游戏存档丢失!解决方法汇总
- 以计算机思维思考当下面向未来,面向未来的核心素养:从运算能力到计算思维...
- input的onkeyup事件
- linux下go语言入门,Go语言入门之旅(二):环境搭建-Linux篇
- 物联网通信协议(接入协议)
- css关于图片处理的相关知识
- C语言100题打卡—第7题
- 使用rke部署k8s集群
- 中国人民公安大学 网络对抗 实验报告 三
- 《WCDMA空中接口技术》读书笔记6: R99 信道与信道解码
- 第4章第27节:异形图表:使用图片来制作一份富有创意的图表 [PowerPoint精美幻灯片实战教程]
- Python画风车,方便快捷