Android如何获取子控件位置坐标
来源:互联网 发布:网络项目实施方案 编辑:程序博客网 时间:2024/05/16 06:28
1. Activity
覆写 onWindowFocusChanged(boolean hasFocus)方法。
@Override public void onWindowFocusChanged(boolean hasFocus) { super.onWindowFocusChanged(hasFocus); if (hasFocus) { /* 获取在当前窗口内的绝对坐标 */ int[] location1 = new int[2] ; view.getLocationInWindow(location1); /*获取在整个屏幕内的绝对坐标*/ int[] location2 = new int[2] ; view.getLocationOnScreen(location2); doSomething(); } }
2. Fragment
在 onCreateView()中通过ViewTreeObserver为View注册addOnGlobalLayoutListener()接口回调。
private View view; @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { view = inflater.inflate(R.layout.xxx, container, false); ViewTreeObserver vto = view.getViewTreeObserver(); vto.addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() { @Override public void onGlobalLayout() { /* 获取子控件信息 */ doGetInfo(); /* 获取子控件信息后,注销回调用接口 */ view.getViewTreeObserver().removeOnGlobalLayoutListener(this); } }); doSomething(); return view; }
注:因为当在一个视图树中全局布局发生改变或者视图树中的某个视图的可视状态发生改变时,OnGlobalLayoutListener就会被触发,所以此接口的回调函数可能会被多次调用,因此在得到了高度之后,要将OnGlobalLayoutListener注销掉。
0 0
- Android如何获取子控件位置坐标
- 如何获取控件的坐标位置
- Android 获取控件的坐标位置
- android设置控件的位置以及获取控件的坐标
- Silverlight如何获取控件的屏幕坐标位置
- mfc控件位置坐标获取
- android获取屏幕尺寸,标题栏,状态栏高度,控件位置坐标
- android获取控件位置坐标,屏幕尺寸,标题栏,状态栏高度
- Android获取控件位置坐标,屏幕尺寸,标题栏,状态栏高度
- android获取控件位置坐标,屏幕尺寸,标题栏,状态栏高度
- android获取控件位置坐标,屏幕尺寸,标题栏,状态栏高度
- Android 获取某控件在屏幕中的位置/坐标
- android 获取控件坐标/位置不显示问题
- android 获取控件在屏幕中的位置(坐标)
- android获取控件坐标
- js获取控件坐标以及位置定位
- Qt获取控件位置,坐标总结
- Qt获取控件位置,坐标总结
- json四中类型解析
- Android ProgressBar进度条详解
- binlog,redo log,undo log
- [bsoj3135] 慢跑问题
- python核心编程(四)— python对象
- Android如何获取子控件位置坐标
- getActionBar为null问题
- hackinglab.cn脚本关之三
- WEB前端之HTML5[6]~HTML5编辑API之Range对象
- 使用pngquant内核,便捷压缩整体项目png图片脚本
- XUtils
- 定义接口与回调用法
- 最大子数组问题的递归和非递归(线性时间)代码
- Play1.2.7 完整打包,超级缩短完整打包所耗费的时间