java - 用于分配对象属性的 OnWindowFocusChanged 与 OnCreate
问题描述
我的问题围绕 onWindowFocusChanged 方法。我知道作为最佳实践,您应该在 onCreate 方法中为您的对象充气。
我想知道的是:在 onCreate 方法期间,ImageViews 等对象没有完全呈现。因此,您使用 onWindowFocusChanged,Android 文档说一旦活动渲染完成就会调用它。我有 ImageView 对象,我需要获取它们的 X 和 Y 位置,并且(因为屏幕尺寸不同)我不知道它们在屏幕上的确切位置,除非我使用硬编码数字,我不想这样做做。然后,我将根据这些 X 和 Y 数字为其他 ImageView 分配边距。但是,如果我必须等到 onWindowFocusChanged 才能获得 X 和 Y,那么在 onCreate 方法中设置这些数字对我没有任何好处。
所以我的问题是 - 我是否仍然可以在 onWindowFocusChanged 内设置 ImageView 的属性并将它们重新渲染为更新后的属性,还是因为它们已经被渲染而锁定了属性值?
解决方案
尝试在 Activity 类中维护 View 对象,并在 onWindowFocusChanged() 中设置属性后调用postInvalidate ()。希望能帮助到你!
推荐阅读
- php - 具有复杂输入数组的 PHP For 循环
- c++ - 嵌套模板类:不接受参数默认值
- google-cloud-platform - 如何为我的 Google Cloud Platform 启动积分激活 GSuite 积分?
- xml - 使用 XSL 1.0 的自定义排序问题
- wordpress - 循环时短代码破坏 ACF 灵活部分
- c# - 使用新的 Unity 输入系统处理多个游戏手柄
- cqrs - 使用 Axon 对业务领域的复合唯一约束
- javascript - Firebase:TypeError:fbRef.child 不是函数
- python - 使用集合/字典的真正时间复杂度是多少?
- python-3.x - python支持多重继承吗?