gpt4 book ai didi

java - 强制全屏 Activity 在简历上重新测量/重绘?

转载 作者:塔克拉玛干 更新时间:2023-11-02 09:04:31 25 4
gpt4 key购买 nike

编辑以添加更多详细信息:(原来是将近两个月前问的。。。到现在还没找到解决办法)

我有一个 View 有点复杂的 Activity 。从技术意义上讲并不复杂……只是发生了很多事情。此特定应用程序中的所有 Activity 都设置为全屏 NoTitleBar,并且都设置为横向。我注意到在开发的早期,当应用程序被隐藏然后恢复时,布局很少会垂直向下滑动,好像是为标题栏和状态栏腾出空间。

在开发的后期,该应用程序现在调用各种外部 Intent 。我现在注意到,当从外部处理的已触发 Intent (例如创建“选择器” Intent 或选择图像)恢复时,更倾向于做出同样的转变。我能够使用完全相同的步骤不一致地重现它......有时它会发生有时它不会。似乎在测量和布局的各个阶段之间存在竞争条件。我假设系统正在为我执行的这些步骤之一是检查全屏和非标题栏,并进行必要的转换。在某些情况下,这可能发生得较晚。

我放置了一堆日志记录,并调用了 invalidate()、requestLayout() 等,试图捕捉竞争条件,但问题似乎在我的布局之外。我的根布局的 top() 和 bottom() 值始终分别为 0 和我的屏幕高度,即使我在问题发生时记录它也是如此。

是否有 Window、WindowManager 或任何其他系统 View 相关对象的其他方法,我可以强制完全重新测量、重绘、重新检查当前主题/样式标志?

最佳答案

我遇到了完全相同的问题,也尝试了几个方法(如上所述)。他们都没有工作。但是我发现了以下解决方法:

 protected void onResume() {
super.onResume();
handler.postDelayed(new Runnable() {
public void run() {
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
WindowManager.LayoutParams.FLAG_FULLSCREEN);
}
}, 1000);
}

在此过程中, View 会出现短暂的闪烁,但至少它不会保持裁剪状态。仍然需要找到一个干净的解决方案。然而,这支持了您的论点,即存在某种时间或竞争问题。

关于java - 强制全屏 Activity 在简历上重新测量/重绘?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4328534/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com