findViewById(android.R.id.statusBarBackground)返回null

时间:2017-11-07 13:07:57

标签: android android-statusbar

我正在尝试获取StatusBarView(我需要它用于活动共享元素转换动画)。

我在我的活动中使用以下代码:

View decorView = getWindow().getDecorView();
View statusBar = decorView.findViewById(android.R.id.statusBarBackground);

statusBar总是null。 我在onCreate()之后和onResume()之后尝试了此代码 - 没有效果。

怎么了?

1 个答案:

答案 0 :(得分:2)

为那些只需要一个干净的答案而不阅读由T.Vert链接的整个主题的人的片段

    final View decor = getWindow().getDecorView();
    decor.getViewTreeObserver().addOnPreDrawListener(new ViewTreeObserver.OnPreDrawListener() {
        @Override
        public boolean onPreDraw() {
            decor.getViewTreeObserver().removeOnPreDrawListener(this);
            View statusBar = decor.findViewById(android.R.id.statusBarBackground);
            return true;
        }
    });