中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Android怎么顯示共享元素動畫效果

發布時間:2022-02-10 15:58:34 來源:億速云 閱讀:504 作者:iii 欄目:開發技術

這篇“Android怎么顯示共享元素動畫效果”文章的知識點大部分人都不太理解,所以小編給大家總結了以下內容,內容詳細,步驟清晰,具有一定的借鑒價值,希望大家閱讀完這篇文章能有所收獲,下面我們一起來看看這篇“Android怎么顯示共享元素動畫效果”文章吧。

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的情況下,發現不是正常的平移動畫,而是先顯示一個小的圖片然后再漸漸隱藏,然后新界面的大圖片再漸漸顯示,動畫效果明顯不對啊。

Android怎么顯示共享元素動畫效果

官方文檔

要在具有一個共享元素的兩個 Activity 之間添加屏幕過渡動畫,請執行以下操作:

\

  • 在主題背景中啟用窗口內容過渡。

  • 在樣式中指定共享元素過渡。

  • 將過渡定義為 XML 資源。

  • 使用 android:transitionName 屬性為兩個布局中的共享元素指定一個通用名稱。

  • 使用 ActivityOptions.makeSceneTransitionAnimation() 函數。

解決流程

百度了一下看看有沒有人遇到類似的問題,但是并沒有。也對應修改了一下style主題什么的,也沒有什么作用。最后想了想,又新建了一個項目,寫個demo測試了一下,上面的自己寫的代碼并沒有上面問題,既然沒有問題,那就是項目代碼里面有問題了,和demo最大的區別就是項目里有網絡請求,以及圖片加載的操作。確定了不確定的地方那就試試看。

supportPostponeEnterTransition()

supportStartPostponedEnterTransition()

一個暫停的方法,一個開始動畫的方法,一進入就暫停動畫,網絡請求或者圖片加載結束后開始動畫,搞定問題。最后看效果。

Android怎么顯示共享元素動畫效果

以上就是關于“Android怎么顯示共享元素動畫效果”這篇文章的內容,相信大家都有了一定的了解,希望小編分享的內容對大家有幫助,若想了解更多相關的知識內容,請關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

凌云县| 吴江市| 宜君县| 河东区| 和林格尔县| 武平县| 南昌县| 龙泉市| 宜兰县| 离岛区| 湘潭市| 新巴尔虎右旗| 奈曼旗| 赤城县| 潮安县| 诸城市| 岱山县| 绵阳市| 宁河县| 扬州市| 遂宁市| 务川| 沈阳市| 女性| 黄冈市| 延川县| 宝坻区| SHOW| 蚌埠市| 海阳市| 崇仁县| 疏附县| 武冈市| 广平县| 本溪| 绥中县| 紫阳县| 永川市| 方城县| 宁远县| 林周县|