在HarmonyOS NEXT开发中使用setPreferredOrientation接口进行转屏,但是屏幕还没转过来(状态栏都还没调整过来),接口就返回成功了?
在HarmonyOS NEXT开发中使用setPreferredOrientation接口进行转屏,但是屏幕还没转过来(状态栏都还没调整过来),接口就返回成功了?
在HarmonyOS NEXT开发中使用setPreferredOrientation
接口进行屏幕旋转时,如果屏幕还未完成旋转(状态栏等UI元素尚未调整完成),但接口已经返回成功,这通常是因为setPreferredOrientation
接口只是发起了屏幕旋转的请求,而实际的屏幕旋转过程是由系统异步处理的。
解决方案:
setPreferredOrientation
的异步性质,不要假设屏幕会立即旋转。可以在接口调用后,通过监听系统事件或UI变化来判断屏幕旋转是否真正完成。Handler
的postDelayed
方法)来等待屏幕旋转完成,但这是一种不太优雅且可能不稳定的解决方案。总之,处理屏幕旋转时需要考虑其异步性质,并采取相应的措施来确保在屏幕旋转完成后执行后续操作。
1 回答1.1k 阅读✓ 已解决
1 回答1.4k 阅读
1 回答1.2k 阅读
1 回答1.2k 阅读
1 回答1.2k 阅读
1 回答1k 阅读
1 回答1k 阅读
1 回答659 阅读
1 回答616 阅读
1 回答732 阅读✓ 已解决
1 回答308 阅读
1 回答775 阅读✓ 已解决
setPreferredOrientation在旋转前就会调用callback,setPreferredOrientation只是下发了命令,下发完了就回调可参考文档:https://developer.huawei.com/consumer/cn/doc/harmonyos-refere...
旋转有个动画,动画耗时很长,无法动画做完才返回用户成功。执行成功时,动画是可打断的,上次旋转动画没做完如果下次旋转又来了,上次的旋转就会被打断。