屏幕旋转后退出活动转换时黑色闪烁

时间:2017-11-29 03:57:33

标签: android android-activity rotation transition blink

我有2个过渡活动。如果我不旋转手机,从A打开B并返回时,一切正常。

但是如果我旋转手机,我从B按回来时会得到这个:

reenter bug

正如你所看到的(下载gif并逐帧查看):

  • 退出动画似乎运行正常,但图片的大小没有缩小到正确的大小
  • 活动A仍然存在,操作栏文字的大小是小景观尺寸
  • 然后我有一个大黑眨眼
  • 然后重新创建A但缺少共享元素

这是在Nexus 5X上发生的,但在三星Galaxy Note 5上它运行良好。如果我禁用共享元素转换,一切正常。

我在这里可以缺少什么?以下是用于启动B的代码:

View toolBar = findViewById(R.id.toolbar);

List<Pair<View, String>> pairs = new ArrayList<>();
pairs.add(Pair.create(statusBar, Window.STATUS_BAR_BACKGROUND_TRANSITION_NAME));
pairs.add(Pair.create(toolBar, toolBar.getTransitionName()));
pairs.add(Pair.create((View)viewerFragment.getImageView(), viewerFragment.getImageView().getTransitionName()));

//noinspection unchecked
Bundle bundle = ActivityOptionsCompat.makeSceneTransitionAnimation(CaptureDetailsActivity.this, pairs.toArray(new Pair[pairs.size()])).toBundle();

Intent intent = new Intent(this, LocalViewerActivity.class);
[...]
ActivityCompat.startActivityForResult(this, intent, REQUEST_LOCAL_VIEWER_ACTIVITY, bundle);

0 个答案:

没有答案