1. final int[] location = new int[2];
  2. view.getLocationOnScreen(location);
  1. final int[] location = new int[2];
  2. view.getLocationOnScreen(location);

这样就可以得到该视图在全局坐标系中的x,y值,(注意这个值是要从屏幕顶端算起,也就是索包括了通知栏的高度)//获取在当前屏幕内的绝对坐标

  1. location[0] x坐标
  2. location[1] y坐标
  1. location[0] x坐标
  2. location[1] y坐标

应用 ,我们可以用来记录上一次listview滚动到了那里

首先我们需要一个记录当前滚动位置的全局变量:

  1. private float OldListY = -1;
  1. private float OldListY = -1;

然后在 listView 的 onItemClick() 或 onItemLongClick() 事件中获取 OldListY:

  1. lstView.setOnItemClickListener(new OnItemClickListener()
  2. {
  3. public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3)
  4. {
  5. int Pos[] = { -1, -1 };  //保存当前坐标的数组
  6. arg1.getLocationOnScreen(Pos);  //获取选中的 Item 在屏幕中的位置,以左上角为原点 (0, 0)
  7. OldListY = (float) Pos[1];  //我们只取 Y 坐标就行了
  8. }
  9. });
  1. lstView.setOnItemClickListener(new OnItemClickListener()
  2. {
  3. public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3)
  4. {
  5. int Pos[] = { -1, -1 };  //保存当前坐标的数组
  6. arg1.getLocationOnScreen(Pos);  //获取选中的 Item 在屏幕中的位置,以左上角为原点 (0, 0)
  7. OldListY = (float) Pos[1];  //我们只取 Y 坐标就行了
  8. }
  9. });

最后要做的就是在 setAdapter() 后恢复先前的位置:

  1. ...
  2. lstView.setAdapter(adapter); // 重新绑定Adapter
  3. lstView.setSelectionFromTop(index, (int) OldListY); // 恢复刚才的位置

最新文章

  1. Mybatis框架的多对一关联关系(六)
  2. 【JAVA】基于MVC架构Java技术荟萃案例演练
  3. redis集群同步迁移方法(二):通过redis-migrate-tool实现
  4. 最近开始研究PMD(一款采用BSD协议发布的Java程序代码检查工具)
  5. C# 学习之旅(3) --- 会说话的简易计算器
  6. 原创:Javascript循环队列类
  7. int, NSInteger, NSUInteger, NSNumber的区别
  8. 10个你必须知道的jQueryMobile代码片段
  9. 201521123084 《Java程序设计》第8周学习总结
  10. [TJOI2015]旅游
  11. R12 - Error &#39;Unable to process your transaction. The operating unit is either invalid or it cannot b
  12. java解决hash算法冲突
  13. 使用PSR-4配合composer autoload 自动加载文件夹
  14. 【Spark深入学习 -16】官网学习SparkSQL
  15. Python加密与解密
  16. @Transactional noRollbackFor
  17. C# 定时调用方法
  18. namenode namespaceID与datanode namespaceID 不一致导致datanode无法启动的问题
  19. 在django中使用django_debug_toolbar进行日志记录
  20. 峰Spring4学习(4)spring自动装配

热门文章

  1. CombineStream 与 Multipart Form
  2. 在shell 上执行mongo 查询
  3. tomcat 常用优化配置
  4. webrtc的音频处理模块apm( audio processing)下载与编译出libwebrtc_audio_preprocessing.so
  5. 简单Excel表格上传下载,POI
  6. python 线程之 threading(二)
  7. C# 退出程序
  8. BZOJ2087 : [Poi2010]Sheep
  9. Spring任务调度之Spring-Task
  10. 搭把手教美工妹妹如何通过升级SSD提升电脑性能