問題タブ [fragment-transitions]
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.
android - フラグメント間でアニメーション化する共有要素
RecyclerView で選択したアイテムから新しいフラグメントに 2 つの単純なビューをアニメーション化しようとしています。あるアクティビティから別のアクティビティに共有要素をアニメーション化する例をたくさん見てきましたが、同じアクティビティ内であるフラグメントから別のフラグメントに共有要素をアニメーション化する例はほとんどありません。それはほとんど動作します。
これが私の構造です。
アクティビティ
-- RecyclerView を使用したフルスクリーン Fragment1
-- フルスクリーン Fragment2 と詳細
ユーザーが Fragment1 の RecyclerView 内のアイテムを選択すると、Fragment1 を Fragment2 に置き換えます。この Fragment2 には、共有要素が異なる位置とサイズで含まれる View があります。
それを機能させるにはちょっとしたコツがあります。transitionName がリスト内の各項目に対して一意であることを確認する必要があります。もちろん、その transitionName は、アニメーションを再生する Fragment2 の要素の transitionName と一致する必要があります。この部分は機能しています。アイテムを選択すると、2 つの共有ビューがアニメーション化されますが、2 つのアクティビティ間でそれを行うときに期待する方法とはまったく異なります。
画面の下部にある項目を選択すると、Fragment2 のビューが描画され、2 つの共有ビューが画面上部の項目にあるかのようにアニメーション化されます。説明するのは難しい。ここにいくつかの写真があります
フラグメント1
フラグメント2
両方のフラグメントで、次を設定しています
onCreate() の親アクティビティにも設定しました
共有要素のアニメーションが、画面の下部にある選択したアイテムで開始されているのに、画面の上部から開始される理由は何ですか?
android - Android フラグメント onCreateAnimator は常に true を入力します
私はhtc Desire 4.0.3でこの問題に直面しています。フラグメントが終了している場合でも、アニメーションは常に開始されます....問題は 4.4 または 5.0 には存在しません
android - Lollipop トランジション - フラグメントからアクティビティへ
Lollipop でアクティビティ (またはフラグメント??) トランジションを行う方法を理解しようとしています。AppCompat v7 - v21 を使用しています。
これが私のシナリオです:
GridView(Fragment内)のアイテムをクリックすると、ここのリンクのように画像が遷移することを望みます。どうすれば達成できますか?そして、スタイルを使用してそれを行う方法はありますか? コードでそれを行う場合、フラグメントからアクティビティへの方法のサンプルを入手できますか?
[編集]
これは私が今まで達成したものです:
styles.xml: 値-v21
MainActivity の onItemClick():
詳細アクティビティ:
これにより移行が行われますが、期待したほど移行がスムーズではありません。まだ作業中です。
ロリポップ以前のデバイスでこれらのトランジションを取得できますか? 2.3.6 などの下位バージョンでコードを実行しようとすると、クラッシュして、NoSuchMethodDef getEnterTransition()
. これらのトランジションは Lollipop にのみ関連していますか?
android - 共有要素 Fragment Transitions に関するヘルプが必要
Fragment から Fragment への移行についてサポートが必要です。見つけることができるドキュメントがほとんどないため、適切に行う方法が明確ではありません。
映画のポスターを含む GridView があります。1 つのポスターをクリックすると、次のフラグメントに移動します。ポスターは共有要素であり、サイズが変更され (大きくなり)、画面を覆います。他の要素は、コンテンツの遷移に従ってフェードします。 .これは正しく動作します。
再入力トランジションを取得できません。戻るボタンを押している間、グリッド ビューの最初の要素が常に最初に表示され (コンテンツ トランジション (フェード) には従いません)、その後、他の要素がフェード インします。共有要素サイズ変更 (縮小) や他の要素の結合は行われません。他の要素と一緒にフェード インするため、コンテンツ トランジション スタイルに従います。ここに私のコードがあります:
NowShowingFragment.java には、画像付きのグリッドビューが含まれています
私の OnCreateView では、Picasso を使用して Web から画像を読み込みます。そのため、最初に Imageview からビットマップを抽出し、それを Activity に渡します。Activity は、表示する次のフラグメントに渡されます。終わり)。
主な活動
NowShowingDetail では、これは古いフラグメントを置き換える新しいフラグメントです。共有要素を全画面表示するだけです。
change_image_transor.xml
前もって感謝します。
編集:同じコードで、アクティビティ遷移メソッドに変更しました.これは問題なく動作します.フラグメント遷移の呼び出し方が間違っている可能性があると思います.あなたの意見に感謝します.
android - 共有要素遷移は FragmentTransaction.replace() では機能しますが、FragmentTransaction.add() では機能しません
Fragment ' replace 'を使用すると、新しい Shared Element Transitions が機能しますが、 Fragment ' add 'を機能させることができないようです。どちらの場合も同じコンテナを使用します。
詳細:
アクティビティ - レイアウト ->
アクティビティの起動時に Fragment1 を画面に追加します
Fragment1 のレイアウト内のビューのクリック イベントで -> Fragment2 を画面に追加します。最初の Fragment の onCreateView にリスナーを設定します
}
両方のフラグメントのレイアウトにこの画像ビューがあります
FragmentTransaction.add()
現在、 2 番目のフラグメントを追加するとトランジションは機能しませんが、FragmentTransaction.replace()
代わりに使用すると機能します。add() で動作させるにはどうすればよいですか? それはまったく可能ですか?
android - 置換フラグメントのトランジションを表示
Fragment StatsDetailFragment がデフォルトで読み込まれるアクティビティがあります。
ボタンを押すと、次のコードを使用してフラグメントを別のフラグメントに置き換えます。
カスタム トランジション クラスを使用して、ProjectEntryListFragment の Enter トランジションを設定しています。
トランジションはうまく機能します。しかし、私が直面している問題は、ProjectEntryListFragment で公開アニメーションが実行されると、StatsDetailFragment が既に削除されており、空白の背景の上で公開アニメーションが再生されることです。ProjectListFragment でリビール トランジションが再生されるときに StatsDetailFragment が表示されるように、StatsDetailFragment で再生することをお勧めします。
新しいフラグメントを追加しようとしましたが、バックスタックのポップ時にエラーが発生します。
どんな助けでも大歓迎です。