android 中获取当前焦点所在屏幕中的位置 view.getLocationOnScreen(location)
- 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); // 恢复刚才的位置
android 中获取当前焦点所在屏幕中的位置 view.getLocationOnScreen(location)的更多相关文章
- android 获取屏幕的高度和宽度、获取控件在屏幕中的位置、获取屏幕中控件的高度和宽度
(一)获取屏幕的高度和宽度 有两种方法: 方法1: WindowManager wm = (WindowManager) getContext().getSystemService(Context.W ...
- WPF中获取鼠标相对于屏幕的位置
原文:WPF中获取鼠标相对于屏幕的位置 WPF中获取鼠标相对于屏幕的位置 周银辉WPF编程时,我们经常使用Mouse.GetPosi ...
- Html5 中获取镜像图像 - 解决 WebGL 中纹理倒置问题
Html5 中获取镜像图像 - 解决 WebGL 中纹理倒置问题 太阳火神的漂亮人生 (http://blog.csdn.net/opengl_es) 本文遵循"署名-非商业用途-保持一致& ...
- js 获取当前焦点所在的元素、给元素和input控件添加键盘监听事件、添加页面级的键盘监听事件
页面级的键盘监听事件 document.onkeydown = function (event) { var e = event || window.event || arguments.callee ...
- 获取Delphi焦点所在的控件及通过控件名称访问控件
方法一: Var I: Integer; Begin For I := To ComponentCount - Do //获取组件数量 Begin If Components[I] Is TWinCo ...
- 在WPF的MVVM框架中获取下拉选择列表中的选中项
文章概述: 本演示介绍怎样在WPF的MVVM框架中.通过数据绑定的方式获取下拉列表中的选中项.程序执行后的效果例如以下图所看到的: 相关下载(代码.屏幕录像):http://pan.baidu.com ...
- java中获取接口(方法)中的参数名字(eclipse设置编译参数)(java8 javac -parameters)
interface接口参数 jdk1.7及以前使用spring功能实现的: 注意: 1.该功能只能获取类的方法的参数名,不能获取接口的方法的参数名. public static void test() ...
- 【2017-06-27】Js中获取地址栏参数、Js中字符串截取
一.Js中获取地址栏参数 //从地址栏获取想要的参数 function GetQueryString(name) { var reg = new RegExp("(^|&)" ...
- ASP.NET 4.0 ListView等容器控件中获取ClientID值与HTML中自动生成ID字符串不一样问题。
ASP.NET 4.0 中 ClientIDMode的属性 可以设置获取不同ID格式的值. 项目中遇到的问题: 1.ListView1 ItemDataBound事件中,获取ClientID结果与自动 ...
随机推荐
- 结合stack数据结构,实现不同进制转换的算法
#!/usr/bin/env python # -*- coding: utf-8 -*- # learn <<Problem Solving with Algorithms and Da ...
- 解决win7下PIL无法打开图片的问题
找到PIL安装文件里的ImageShow.py 把第99行的 return "start /wait %s && del /f %s" % (file, file) ...
- linux 学习 day1
- 第十六篇:SWindow的布局属性pos2type及offset
当窗口大小需要根据内容来确定时,使用XML布局可能需要做一些特殊的处理. 例如:不管窗口多大,我需要将该窗口相对于父窗口居中在XML中应该怎么处理? 如果窗口大小是固定的(如, 100 *100),这 ...
- winform用户控件、动态创建添加控件、timer控件、控件联动
用户控件: 相当于自定义的一个panel 里面可以放各种其他控件,并可以在后台一下调用整个此自定义控件. 使用方法:在项目上右键.添加.用户控件,之后用户控件的编辑与普通容器控件类似.如果要在后台往窗 ...
- python 线程之threading(五)
在学习了Event和Condition两个线程同步工具之后还有一个我认为比较鸡肋的工具 semaphores 1. 使用semaphores的使用效果和Condition的notify方法的效果基本相 ...
- java抽象类实践
package javaClassStudy; /** * * @author yuxg * 抽象类实践 */ public abstract class Person { private Strin ...
- JS ECMAScript 5中的every 和 some方法进行逻辑判断
ECMA Script 5 中新增两个不错的关于数组元素的逻辑运算方法some, every Array.some(function(item){}); Array.every(function(it ...
- OOP: One pont of view of OOP与基于算法设计的区别
..摘自<C++网络编程 卷1:运用ACE和模式消除复杂性> <C++ Network Programming Volume 1 Mastering Complexity with ...
- JS 生成GUID 方法
var Guid={NewGuid: function () { var guid = (this._G() + this._G() +"-"+ this._G() +" ...