我试过Nougat
和Oreo
。这两款手机都是机器人,两种视图都可以在屏幕上显示。我的sharedElementTransition
需要这些观看次数。在here之前已经提出了这个问题,但没有回答。这种情况发生在很多人身上,他们在Alex Lockwood的回答评论中讨论here,但没有明确的解决方案。
我从我的活动中调用了findViewById()
并尝试了两个
findViewById(android.R.id.statusBarBackground);
和
getWindow().getDecorView().findViewById(android.R.id.statusBarBackground);
我在findViewById()
setContentView()
Possibly related,但与progressBar
不同,statusBar
和navigationBar
视图几乎始终存在。
代码:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
getWindow().requestFeature(Window.FEATURE_CONTENT_TRANSITIONS);
getWindow().setSharedElementEnterTransition(getTransitionSet());
getWindow().setSharedElementExitTransition(getTransitionSet());
getWindow().setSharedElementReturnTransition(getTransitionSet());
getWindow().setSharedElementReenterTransition(getTransitionSet());
ActivityCompat.postponeEnterTransition(this);
setEnterSharedElementCallback(mCallback);
}
setContentView(R.layout.summary_image_preview);
navigationBar = getWindow().getDecorView().findViewById(android.R.id.navigationBarBackground);
statusBar = getWindow().getDecorView().findViewById(android.R.id.statusBarBackground);
mToolbar = (Toolbar) findViewById(R.id.toolBar);
// etc...
}
Toolbar
是我的内容视图中的普通视图,它工作正常。但是statusBar
和navigationBar are null
答案 0 :(得分:0)
Views
在onCreate()
函数中返回null。我在Views
的{{1}}内检查了相同的Fragment
,但它们并非空。我通过延迟onViewCreated()
来解决问题,直到我需要它为止。
对于某些reasor,虽然findViewById()
中提供了其他视图,但只有在onCreate()
创建后才能访问应用程序之外的视图