java–Android等待UI线程

java–Android等待UI线程,第1张

概述出于测试目的,我需要在屏幕上获取所有可见视图的坐标.但是,在检查输出时,似乎UI线程尚未完成绘制/定位/应用设置到所有视图.一些视图是0x0像素,而它们应该是(并且它们在仿真器和物理设备上)可见.一些底部对齐的按钮位于楼梯等处.问:我如何等待UI线程完成绘图(或者至少等待一秒钟,这

出于测试目的,我需要在屏幕上获取所有可见视图的坐标.但是,在检查输出时,似乎UI线程尚未完成绘制/定位/应用设置到所有视图.一些视图是0x0像素,而它们应该是(并且它们在仿真器和物理设备上)可见.一些底部对齐的按钮位于楼梯等处.

问:我如何等待UI线程完成绘图(或者至少等待一秒钟,这应该绰绰有余),所以所有可见视图的坐标都是准确的?

我怀疑它与Threads有关,但我找不到任何确定的答案.到目前为止,我没有任何自我声明的线程.

编辑:我使用onBackpressed使一堆视图可见,然后在xml中捕获它,使之前的视图不可见,其他视图可见,在xml中捕获,等等.我通过几个不同的视图组合和“xml-screenshot”迭代“每个组合.

解决方法:

linearLayout layout = (linearLayout)findVIEwByID(R.ID.YOUD VIEW ID);VIEwTreeObserver vto = layout.getVIEwTreeObserver(); vto.addOnGlobalLayoutListener(new OnGlobalLayoutListener() {     @OverrIDe     public voID onGlobalLayout() {         this.layout.getVIEwTreeObserver().removeGlobalOnLayoutListener(this);         int wIDth  = layout.getMeasureDWIDth();        int height = layout.getMeasuredHeight();     } });

您需要调整此选项以使用布局,并将ID添加到基本父布局.

通过使用ViewTreeObserver,您可以了解布局何时完成绘制,然后运行所需的代码

总结

以上是内存溢出为你收集整理的java – Android等待UI线程全部内容,希望文章能够帮你解决java – Android等待UI线程所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1109982.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-29
下一篇 2022-05-29

发表评论

登录后才能评论

评论列表(0条)

保存