我正在尝试获取StatusBarView
(我需要它用于活动共享元素转换动画)。
我在我的活动中使用以下代码:
View decorView = getWindow().getDecorView();
View statusBar = decorView.findViewById(android.R.id.statusBarBackground);
但statusBar
总是null
。
我在onCreate()
之后和onResume()
之后尝试了此代码 - 没有效果。
怎么了?
答案 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;
}
});