android 中获取当前焦点所在屏幕中的位置 view.getLocationOnScreen(location)
2024-08-31 05:52:07
- final int[] location = new int[2];
- view.getLocationOnScreen(location);
- final int[] location = new int[2];
- view.getLocationOnScreen(location);
这样就可以得到该视图在全局坐标系中的x,y值,(注意这个值是要从屏幕顶端算起,也就是索包括了通知栏的高度)//获取在当前屏幕内的绝对坐标
- location[0] x坐标
- location[1] y坐标
- location[0] x坐标
- location[1] y坐标
应用 ,我们可以用来记录上一次listview滚动到了那里
首先我们需要一个记录当前滚动位置的全局变量:
- private float OldListY = -1;
- private float OldListY = -1;
然后在 listView 的 onItemClick() 或 onItemLongClick() 事件中获取 OldListY:
- lstView.setOnItemClickListener(new OnItemClickListener()
- {
- public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3)
- {
- int Pos[] = { -1, -1 }; //保存当前坐标的数组
- arg1.getLocationOnScreen(Pos); //获取选中的 Item 在屏幕中的位置,以左上角为原点 (0, 0)
- OldListY = (float) Pos[1]; //我们只取 Y 坐标就行了
- }
- });
- lstView.setOnItemClickListener(new OnItemClickListener()
- {
- public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3)
- {
- int Pos[] = { -1, -1 }; //保存当前坐标的数组
- arg1.getLocationOnScreen(Pos); //获取选中的 Item 在屏幕中的位置,以左上角为原点 (0, 0)
- OldListY = (float) Pos[1]; //我们只取 Y 坐标就行了
- }
- });
最后要做的就是在 setAdapter() 后恢复先前的位置:
- ...
- lstView.setAdapter(adapter); // 重新绑定Adapter
- lstView.setSelectionFromTop(index, (int) OldListY); // 恢复刚才的位置
最新文章
- Mybatis框架的多对一关联关系(六)
- 【JAVA】基于MVC架构Java技术荟萃案例演练
- redis集群同步迁移方法(二):通过redis-migrate-tool实现
- 最近开始研究PMD(一款采用BSD协议发布的Java程序代码检查工具)
- C# 学习之旅(3) --- 会说话的简易计算器
- 原创:Javascript循环队列类
- int, NSInteger, NSUInteger, NSNumber的区别
- 10个你必须知道的jQueryMobile代码片段
- 201521123084 《Java程序设计》第8周学习总结
- [TJOI2015]旅游
- R12 - Error &#39;Unable to process your transaction. The operating unit is either invalid or it cannot b
- java解决hash算法冲突
- 使用PSR-4配合composer autoload 自动加载文件夹
- 【Spark深入学习 -16】官网学习SparkSQL
- Python加密与解密
- @Transactional noRollbackFor
- C# 定时调用方法
- namenode namespaceID与datanode namespaceID 不一致导致datanode无法启动的问题
- 在django中使用django_debug_toolbar进行日志记录
- 峰Spring4学习(4)spring自动装配
热门文章
- CombineStream 与 Multipart Form
- 在shell 上执行mongo 查询
- tomcat 常用优化配置
- webrtc的音频处理模块apm( audio processing)下载与编译出libwebrtc_audio_preprocessing.so
- 简单Excel表格上传下载,POI
- python 线程之 threading(二)
- C# 退出程序
- BZOJ2087 : [Poi2010]Sheep
- Spring任务调度之Spring-Task
- 搭把手教美工妹妹如何通过升级SSD提升电脑性能