文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

Android共享元素动画效果显示问题解决

2024-04-02 19:55

关注

bug描述

设计同学想搞一个点击图片item,item内的图片移动到新页面的图片位置的效果,一想就是共享元素就能搞定啊。

companion object {
        fun gotoDetail(
            context: Activity,
            dynamicId: String?,
            jumpComment: Boolean = false,
            shareElement: Boolean = false,
            imageView: ImageView? = null,
            nameView: TextView? = null,
            avatarView: ImageView? = null,
        ) {
            LogUtils.w(shareElement)
            if (shareElement) {
                val intent = Intent(context, HomeDynamicDetailAcitvity::class.java)
                intent.putExtra("dynamicId", dynamicId ?: "")
                intent.putExtra("jumpComment", jumpComment)
                intent.putExtra("shareElement", shareElement)
                val options = ActivityOptions
                    .makeSceneTransitionAnimation(
                        context,
                        UtilPair.create(imageView, context.getString(R.string.dynamic_start_top_image)),
                        UtilPair.create(avatarView, context.getString(R.string.dynamic_start_avatar)),
                        UtilPair.create(nameView, context.getString(R.string.dynamic_start_name))
                    )
//                val options = ActivityOptions.makeSceneTransitionAnimation(context, imageView, context.getString(R.string.dynamic_start_top_image))

                // start the new activity
                ActivityCompat.startActivity(context, intent, options.toBundle())
            } else {
                val params = HashMap<String, Any>()
                params["dynamicId"] = dynamicId ?: ""
                params["jumpComment"] = jumpComment
                context.toActivity(RoutePath.HOME_DYNAMIC_DETAIL, params)

            }
        }
    }

结果按照文档写了一下,但是效果却有问题。通过把动画时长放到5x的情况下,发现不是正常的平移动画,而是先显示一个小的图片然后再渐渐隐藏,然后新界面的大图片再渐渐显示,动画效果明显不对啊。

官方文档

要在具有一个共享元素的两个 Activity 之间添加屏幕过渡动画,请执行以下操作:

\

解决流程

百度了一下看看有没有人遇到类似的问题,但是并没有。也对应修改了一下style主题什么的,也没有什么作用。最后想了想,又新建了一个项目,写个demo测试了一下,上面的自己写的代码并没有上面问题,既然没有问题,那就是项目代码里面有问题了,和demo最大的区别就是项目里有网络请求,以及图片加载的操作。确定了不确定的地方那就试试看。

supportPostponeEnterTransition()

supportStartPostponedEnterTransition()

一个暂停的方法,一个开始动画的方法,一进入就暂停动画,网络请求或者图片加载结束后开始动画,搞定问题。最后看效果。

ok解决收工

总结

到此这篇关于Android共享元素动画效果显示问题解决的文章就介绍到这了,更多相关Android共享元素动画显示内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-移动开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯