参考: 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. PreferenceActivity里加入普通的View
  2. ToggleButton的使用
  3. [Android] 单独编译生成boot.img时mkboot
  4. android导入工程报错
  5. Android tab 学习
  6. Android——RatingBar(评价条)相关知识总结
  7. sensor
  8. Android选项卡TabHost方式实现
  9. android ActionBar(官方指导)
  10. (原)Eclipse的java中文件读写