项目需要在UI中获取其中一个控件的位置,在oncreate中直接获取发现参数全为零,获取失败。网上查询知道原来需要等到整个换面加载完才可以获取到位置信息。特来记录下以备以后查询
获取空间屏幕位置:
Rect rect = new Rect();
int location[] = new int[2];
mPlaySurfaceView.getLocationOnScreen(location); //获取屏幕中位置
rect.left = location[0];
rect.top = location[1];
rect.right = rect.left + mPlaySurfaceView.getWidth();
rect.bottom = rect.top + mPlaySurfaceView.getHeight();
UI加载完标志:
isfirst = true;
@Override
public void onWindowFocusChanged(boolean hasFocus) {
super.onWindowFocusChanged(hasFocus);
if (hasFocus && isfirst) {
//获取屏幕位置,可以争取获取到位置参数。
isfirst = false;
}
做了isfirst标志,记录是否是新建的时候进入。
在Android项目中,需要在UI加载完成后才能准确获取控件的位置。通过在`onWindowFocusChanged`方法中判断是否首次进入,设置标志位避免在界面未完全加载时获取位置导致错误。使用`Rect`和`getLocationOnScreen`方法可获取控件在屏幕中的位置信息。
439

被折叠的 条评论
为什么被折叠?



