android listview 使用代码滚动到指定位置(标记)
2015-10-21 23:59
417 查看
采用 smoothScroll...系列函数可实现,例如使用在 微信朋友圈中进行评论时listview 滚动到相应位置,实现原理:
1.获取评论条目view在屏幕中得绝对位置
2.获取评论输入view在键盘弹出后在屏幕的绝对位置。
3.计算出评论条目view需要滚动到得位置
4.计算需要滚动的距离
5.使用smoothScrollBy进行滚动
值的注意的是需要监听当键盘弹出后输入框的位置,即输入框父容器
函数的调用
1.获取评论条目view在屏幕中得绝对位置
view.getLocationOnScreen(position);
2.获取评论输入view在键盘弹出后在屏幕的绝对位置。
3.计算出评论条目view需要滚动到得位置
4.计算需要滚动的距离
5.使用smoothScrollBy进行滚动
值的注意的是需要监听当键盘弹出后输入框的位置,即输入框父容器
onSizeChanged
函数的调用
private class STRelativeLayout extends RelativeLayout{ public STRelativeLayout(Context context) { super(context); } @Override protected void onSizeChanged(int w, int h, int oldw, int oldh) { super.onSizeChanged(w, h, oldw, oldh); if (mListener != null){ mListener.onSizeChanged(this,w,h); } } private OnSizeChangeListener mListener; void setOnSizeChangeListener(OnSizeChangeListener listener){ this.mListener = listener; } } }
相关文章推荐
- 使用C++实现JNI接口需要注意的事项
- Android IPC进程间通讯机制
- Android Manifest 用法
- [转载]Activity中ConfigChanges属性的用法
- Android之获取手机上的图片和视频缩略图thumbnails
- Android之使用Http协议实现文件上传功能
- Android学习笔记(二九):嵌入浏览器
- android string.xml文件中的整型和string型代替
- i-jetty环境搭配与编译
- android之定时器AlarmManager
- android wifi 无线调试
- Android Native 绘图方法
- Android java 与 javascript互访(相互调用)的方法例子
- android 代码实现控件之间的间距
- android FragmentPagerAdapter的“标准”配置
- Android"解决"onTouch和onClick的冲突问题
- android:installLocation简析
- android searchView的关闭事件
- SourceProvider.getJniDirectories