我如何知道是否已绘制视图

时间:2017-02-05 04:05:34

标签: java android android-layout view

我想知道是否可以知道屏幕上是否已绘制视图。

我对设置一个监听器并等待它并不感兴趣,因为我已经知道如何做到这一点。我正在寻找一个电话,如果视频当前在屏幕上,则获得真/假。

我不相信我可以简单地检查可见性,因为这是一个预设变量,无论其状态如何,但我可能是错的。

如果视图没有绘制,我将设置一个ViewTreeObserver并等待它,但只有在尚未绘制视图时才需要。

2 个答案:

答案 0 :(得分:1)

因为getVisibility()返回一个预定义的属性,你不想设置一个监听器;我认为唯一的选择是View.isShown()。 我希望这会有所帮助。

答案 1 :(得分:0)

如果您只想观察一个视图,请尝试创建自定义视图并覆盖draw()并在其中设置一个标记,如:

public DemoView extends TextView {
    private boolean mHasDrawn;
    // ...
    @override
    public void draw(Canvas canvas) {
        super.draw(canvas);
        mHasDrawn = true;
    }
}

然后您可以检查mHasDrawn以确保已绘制视图。 但是,我认为设置一个听众比这更好。