java - OnPreDraw() 被一遍又一遍地调用。什么可以解释呢?

标签 java android android-layout

至少它在做我想让它做的事(在运行时使我的 View 居中)但为什么它要一遍又一遍地做呢?我的理解是应该在view tree有东西要画的时候调用,不应该每秒多次。我在这里记录它的调用

OnPreDraw() calls

为什么即使屏幕上什么都没有发生,OnPreDraw() 也会被一遍又一遍地调用?这对性能来说很糟糕吗?我只希望在实际有东西要绘制时调用它。

如果重要的话, View location_manager 是操作栏的一部分。

最佳答案

如果您只希望它被调用一次,则需要删除 onPreDraw() 方法第一行中的 OnPreDrawListener:

myView.getViewTreeObserver().removeOnPreDrawListener(this);

关于java - OnPreDraw() 被一遍又一遍地调用。什么可以解释呢?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28678788/

相关文章:

android - 如何在android中实现下拉刷新?

java - Android相机应用强制关闭

java - Android 通知打开多次而不是只打开一次

java - 如何让我的动画更流畅 Android

Android Studio 导入错误

java - Android studio 按钮将我带到错误的 Activity

android - 嵌套的 TextView(ConstraintLayout --> LinearLayout)仅在编辑器中可见

java - ResultSet.next() 返回 false

java - Android asynctask 像 arargs 方法一样只能重写或被其他 varargs 方法重写

android - 再次出现空指针异常