android - 如何共享元素从 fragment 过渡到 Activity

标签 android android-activity fragment transition shared

我在一个 Activity 的 ViewPager 中有三个 fragment ,我想实现从一个 fragment 到另一个 Activity 的共享元素转换。过渡来自回收站 View ,该 View 位于 fragment 内,而 fragment 位于 Activity 内的 viewpager 内 Activity->ViewPager->Fragment->Recyclerview

我搜索了每个地方的互联网,但只有关于从一个 fragment 到另一个 fragment 以及一个 Activity 到另一个 Activity 的共享元素转换的信息。 没有关于fragment到activity过渡的内容

holder.poster.setTransitionName("posterX");
            ActivityOptionsCompat options = ActivityOptionsCompat.makeSceneTransitionAnimation((Activity) con,holder.poster,holder.poster.getTransitionName());
            Log.e("Animation", "Success");
            //startActivity((Activity) con,intent,options.toBundle());
            c.startActivity(intent,options.toBundle());

在使用上面的代码时,第二个 Activity 启动但没有任何可见,例如第二个 Activity 包含一个 FAB,当点击 youtube 时启动。 我知道 FAB 在哪里,所以当我盲目点击时,youtube 正确启动但在第二个 Activity 中什么都看不到

D/ViewRootImpl: changeCanvasOpacity: opaque=true

它是 logcats 之一。 我认为这一定是问题所在!!

最佳答案

终于找到答案了,startActivity的调用方式不一样。 你必须打电话

startActivityFromFragment(fragment, intent, req_code, options.toBundle());

来自 AppCompactActivity

关于android - 如何共享元素从 fragment 过渡到 Activity ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38593474/

相关文章:

android - 无法覆盖 Fragment 中的 onContextItemSelected

android - 为什么 webkit 浏览器会缩小手机上的一些 float 元素?

java - 带有 viewpager 和 picasso 的应用程序不断停止

java - 尝试在指定时间后更改 Activity 后出错 - "Unfortunately, Application has stopped"

android - 为什么错误 "Calling startActivity() from outside of an Activity context requires the FLAG_ACTIVITY_NEW_TASK flag"只发生在某些设备上?

android - 配置更改后 fragment 丢失过渡动画

android - 在哪里可以找到 Firebase 云消息传递的 Reference_Ids?

android - 是否可以在运行时获取依赖版本,包括从库本身获取?

android - 为什么在我的 Activity 启动后立即调用 onStop?

java - 启动 map Activity 的正确方法?