繁体   English   中英

确定Android何时完成UI更新

[英]Determine when Android has finished updating UI

我正在使用ActivityInstrumentationTestCase2来测试我的UI。 我的测试将更改一些出现在屏幕上的值。 但是,设置完该值之后,我将通过拍摄快照图像来测试屏幕,在位图上运行校验和,并将校验和的值与期望值进行比较。 但是在设置UI值后,Android尚未完成其UI的更新。 我发现的唯一解决方案是使用延迟等待几秒钟,尽管这是不希望的,因为它具有不必要的等待时间,并且需要进行足够的测试。 有什么方法可以知道Android何时实际完成了UI的更新?

做更多的研究,我发现了这一点。 尚未尝试:

要获取有关系统UI可见性更改的通知,请在您的视图中注册View.OnSystemUiVisibilityChangeListener。 通常,这是您用来控制导航可见性的视图。

例如,您可以将此代码添加到活动的onCreate()方法中:

View decorView = getWindow().getDecorView();
decorView.setOnSystemUiVisibilityChangeListener
        (new View.OnSystemUiVisibilityChangeListener() {
    @Override
    public void onSystemUiVisibilityChange(int visibility) {
        // Note that system bars will only be "visible" if none of the
        // LOW_PROFILE, HIDE_NAVIGATION, or FULLSCREEN flags are set.
        if ((visibility & View.SYSTEM_UI_FLAG_FULLSCREEN) == 0) {
            // TODO: The system bars are visible. Make any desired
            // adjustments to your UI, such as showing the action bar or
            // other navigational controls.
        } else {
            // TODO: The system bars are NOT visible. Make any desired
            // adjustments to your UI, such as hiding the action bar or
            // other navigational controls.
        }
    }
});

http://developer.android.com/training/system-ui/visibility.html

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM