我的Android进阶之旅------>Android Listview跳到指定条目位置的两种实现方法
来源:互联网 发布:网络通讯设备回收 编辑:程序博客网 时间:2024/05/16 05:19
前言
今天实现ListView跳转到第一个条目位置时,使用smoothScrollToPosition(int position)方法跳转实现了,但是交互说不需要这样的动画效果,需要直接跳转到第一项,于是使用了setSelection(int position)方法跳转跳转,但是setSelection(int position)方法跳转一直没有生效。原来是因为setSelection(int position)方法不能配合mAdapter.notifyDataSetChanged();方法一起使用,否则就会不生效。
总结
Listview跳到指定条目位置有如下两种做法:
1.使用smoothScrollToPosition(int position)方法跳转
listView.smoothScrollToPosition(0);//刷新完后调转到第一条内容处 mAdapter.notifyDataSetChanged();
这个方法跳转是带有动画的跳转,可以将listView直接跳到指定(第0个条目的位置)
另外,mAdapter.notifyDataSetChanged(); 这句代码对其没影响,始终都会有跳转动作。
2.使用setSelection(int position)方法跳转
listView.setSelection(0);//刷新完后调转到第一条内容处
这个方法会让指定的条目显示为当前屏幕的第一个,这个跳动不伴有动画。
但要注意一定不要刷新适配器(adapter.notifyDataSetChanged()),不然你会发现跳转无效。
代码如下:
listView.setSelection(0);//刷新完后调转到第一条内容处mAdapter.notifyDataSetChanged();
如果代码如上所示的话,就会一直没有跳转的效果。
当然你可以在更新完mAdapter的数据之后,在调用完mAdapter.notifyDataSetChanged();方法之后再调用listView.setSelection(0);方法来达到跳转的目的。代码如下:
mAdapter.notifyDataSetChanged();listView.setSelection(0);//刷新完后调转到第一条内容处
下面是我尝试两种方法的一段代码:
// 方法1:// listView.smoothScrollToPosition(0);//刷新完后调转到第一条内容处 if (mData == null) { mData = new ArrayList<>(); } if (mData != null) { mData.clear(); } mData.addAll(news); mAdapter.setmData(mData); mAdapter.notifyDataSetChanged();// 方法2: listView.setSelection(0);//刷新完后调转到第一条内容处
如上代码所示的话,就可以实现直接跳转到第一个条目的效果。
作者:欧阳鹏 欢迎转载,与人分享是进步的源泉!
转载请保留原文地址:http://blog.csdn.net/ouyang_peng
- 我的Android进阶之旅------>Android Listview跳到指定条目位置的两种实现方法
- 我的Android进阶之旅------>Android的ListView数据更新后,如何使最新的条目可以自动滚动到可视范围内?
- 我的Android进阶之旅------>Android的ListView数据更新后,如何使最新的条目可以自动滚动到可视范...
- Listview跳到指定条目位置(条目)
- Android RecyclerView:设置指定位置的两种方法
- 我的Android进阶之旅------>Android ListView优化详解
- 我的Android进阶之旅------>Android之ListView实现下拉回弹刷新
- 我的Android进阶之旅------>Android二级ListView列表的实现
- 我的Android进阶之旅------>Android之Gallery和GridView两种方式与ImageSwitcher实现带预览的和幻灯片方式的两种图片浏览器
- 定位ListView到指定的某一个条目
- Android编程之指定ListView的item位置
- 我的Android进阶之旅------>ListView中android:cacheColorHint,android:listSelector属性作用 .
- 关于Listview显示不同条目的两种方法
- Android 记录和恢复ListView滚动的位置的两种方法
- Android 记录和恢复ListView滚动的位置的两种方法
- 我的Android进阶之旅------>Android中ListView中嵌套(ListView)控件时item的点击事件不起作的问题解决方法
- android listview 滑动到指定位置
- 我的Android进阶之旅------>Android ListView 应用解析(使用ArrayAdapter,SimpleAdapter和SimpleCursorAdapter适配器)
- iOS学习(二十二)Objective-C 动态识别的应用
- Shell中字符串排序的几种方法
- 安卓知识点
- 求一个字符串中出现频率最高的字符
- 求两个数的最大公约数
- 我的Android进阶之旅------>Android Listview跳到指定条目位置的两种实现方法
- 华为机试---及格线
- Android 图形处理特效 Matrix 的set 、 pre、post方法的区别和使用
- AVLTree简单实现
- 堆/栈/动态存储方式/静态存储方式
- mybatis 使用dblink 执行insert 报ora-22816 returning 子句不支持的功能问题解决方法
- Android中ViewPager+Fragment预加载和onResume方法的问题
- DOS头部IMAGE_DOS_HEADER
- java.io.IOException Error running exec().Command: [su] Working Directory: null Environment: null