参考: http://archive.cnblogs.com/a/2111143/
http://www.littledai.com/20110227/162258/536



Java代码
  1. finalint[]location=newint[2];
  2. view.getLocationOnScreen(location);



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

Java代码
  1. location[0]x坐标
  2. location[1]y坐标


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

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


Java代码
  1. privatefloatOldListY=-1;

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


Java代码
  1. lstView.setOnItemClickListener(newOnItemClickListener()
  2. {
  3. publicvoidonItemClick(AdapterView<?>arg0,Viewarg1,intarg2,longarg3)
  4. {
  5. intPos[]={-1,-1};//保存当前坐标的数组
  6. arg1.getLocationOnScreen(Pos);//获取选中的Item在屏幕中的位置,以左上角为原点(0,0)
  7. OldListY=(float)Pos[1];//我们只取Y坐标就行了
  8. }
  9. });

最后要做的就是在 setAdapter() 后恢复先前的位置:
Java代码
  1. ...
  2. lstView.setAdapter(adapter);//重新绑定Adapter
  3. lstView.setSelectionFromTop(index,(int)OldListY);//恢复刚才的位置

更多相关文章

  1. Android(安卓)备忘录
  2. Android顶部导航
  3. Android属性动画源代码解析(超详细)
  4. android 完美的ListView实现【原创】
  5. android中置调用指定浏览器
  6. Android获得SD卡剩余容量的源码
  7. android 随手记 videoview循环播放网络视频 和mediaplayer+sufac
  8. 系出名门Android(6) - 控件(View)之DatePicker, TimePicker, Tog
  9. android 震动的api介绍

随机推荐

  1. Android的Message机制(简单小结)
  2. android back 返回机制的几种解决方案
  3. Material Design之FloatingActionBar
  4. Android之最简单的ImageView加边框方法
  5. android 开发 调用第三方程序
  6. Android DEX反编译后部分代码解析
  7. Android中几种延后处理事件的方法
  8. Android(安卓)JNI开发提高篇
  9. Android笔试题大全(持续更新中)
  10. android 跳转到手机设置指定应用详情页面