問題タブ [sharedelementcallback]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
2 に答える
10995 参照

android - ViewPager フラグメント – 共有要素遷移

私が開発しているアプリは、画像のグリッドを表示します。画像をタップすると、詳細ビ​​ューに移動します。詳細ビューには、グリッド内のすべての画像間をスワイプできる ViewPager が含まれています。これは、パスのリスト (グリッド内のすべての画像を含む) と、タップされた画像のオフセットを渡すことによって行われるため、ViewPager はそのページを最初に表示するように設定できます。

ViewPager の現在のオフセット ページの Fragment 内で共有要素遷移を行う最良の方法は何ですか? グリッド (RecyclerView) 画像は、現在のページの全画面画像に展開されます。アクティビティの遷移を延期および再開する機能を確認したので、アプリは、画像がディスクから読み込まれるまで、共有要素の遷移の表示を待機します。しかし、ビューページャーで正しいページにアニメーション化し、ユーザーが戻ったときに現在のページに戻ることができるようにしたいと考えています (ページ間をスワイプできるため)。ここで別のページにスワイプすると、最初のページがアニメーションでグリッドに戻ります。

現在、ビューページャーのフラグメント内のすべての画像に、「image_[index]」形式の transitionName を割り当てています。詳細アクティビティを開始するときは、インデックスをオフセットとして同じ transitionName を使用します。

これに関連して、長押しで波紋を機能させる方法も考えていました。ビューのアクティブ化状態を変更すると、リップルがキャンセルされるようです。波紋が再び始まり、長押しが完了してアクティブ化状態をトリガーした後、すぐに終了する、Gmail に似た効果が必要です。

0 投票する
1 に答える
1102 参照

android - Viewpager を使用して Fragments 間で SharedElement Transition を実行する方法

SharedElement Transitions について多くのことを調査しましたが、onclick イベントの Transitions しか見つかりませんでした。

アニメーションの速度がユーザーのスクロール速度によって制御されるフラグメント間のアニメーションが必要です。ユーザーがスクロール中に途中で停止した場合、オブジェクトは静止している必要があります。例 :ここに画像の説明を入力 この画像では、viewpager は screen1 と screen2 の中間にあり、アニメーション オブジェクトは停止状態にあります。

これらのオブジェクトは、ある画面から別の画面に移動し、位置も変更します。

私が理解した翻訳アニメーションの部分ですが、フラグメント間のビューページャーを使用してこの共有要素の遷移を実現する方法。さらに、指のスワイプの速度でスクロール/アニメーション化する必要があります。

MainActivity.java

FirstFragment.java- このフラグメントには、ユーザーがビューページをスワイプしているときに 2 番目のフラグメントと共有する必要があるイメージビューがあります。

MyFragmentPagerAdapter.java

second_fragment.xml

first_fragment.xml

Edit1-この質問は私の質問のサブ部分であるため、コメントに記載されているリンクの複製ではありません。違いは、その質問のアニメーションが静的な速度でクリックすると発生することです。ただし、私の質問では、アニメーションの速度は ViewPager のスワイプ速度と同じでなければなりません。

0 投票する
1 に答える
656 参照

android - 共有要素遷移後のアクティビティ入力遷移コーディネーターでのメモリ リーク

EnterTransitionCoordinator共有要素遷移の使用中にメモリ リークの問題が発生しました。以下に、アプリの構造を示します。

アプリの構造

2 つの画面があり、最初はActivitywithDrawerLayoutといくつかFragmentの s です。それらの 1 つは写真のリストで構成され、特定の写真をクリックすると、別のFragmentからへの共有要素遷移がトリガーされます。これら 2 つの s を終了して再入力するときにカスタムを使用して、共有要素の遷移を正しくマッピングしています。この素晴らしいブログ投稿に基づいてコードを作成しました: https://android.jlelse.eu/dynamic-shared-element-transition-23428f62a2afViewPagerActivitySharedElementCallbackActivityView

ViewPager問題は、のアイテム間をスワイプした後Fragment、 が破棄されているのに、View共有要素の遷移に使用されている がActivityActivityTransitionState、特に に保持されていることEnterTransitionCoordinatorです。Activitywithに再入力してからDrawerLayout別の を開く場合も同様Fragmentです。View共有要素の遷移に使用されるへの参照は、 が破棄されActivityても int のままFragmentであり、メモリ リークが発生します。

私の質問: このメモリ リークを回避する良い方法はありますか?