問題タブ [shared-element-transition]

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 投票する
1 に答える
6266 参照

android - Dialog Activity による共有要素遷移

ダイアログ テーマ ( github のソース コード) でアクティビティを開始するときに共有要素遷移を使用する非常に単純なアプリをまとめました。

次の結果が得られました。

サンプルアプリ

ご覧のとおり、トランジション/アニメーションには 2 つの問題があります。

  1. アニメーションはダイアログ アクティビティの領域でのみ表示されるため、クリップして見苦しくなります。
  2. アクティビティの外側をタップして戻ると、トランジション/アニメーションがありません。

これらの問題を解決するにはどうすればよいですか? どんな助けでも大歓迎です。

編集: Quanturiumの回答の後、私はそれを機能させるために次のことを行いました:

ダイアログ テーマの代わりに次のテーマを使用します。

ダイアログの外観、および丸みを帯びた角と影の背景として CardView を使用します。

finishAfterTransition() を呼び出します。ユーザーが CardView の外をタップしたとき。

現在、この (コード) のように見えます。CardView は、ダイアログによりよく一致するように調整する必要がありますが、少なくとも機能しています。

働く

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

android - Android Lollipop での共有要素遷移の不具合

ListView からマスター ディテールの状況で Android 5.0 共有要素遷移を実行しようとしています。画像を送ります。

マスター アクティビティが遷移している間、画像がまったく動かない入力遷移でグリッチが発生しました。Detail アクティビティが読み込まれると、Image は画面の左上から始まり、最終的な位置にアニメーション化されます。リターン トランジションは完全に機能します。画像は詳細位置からマスターの適切な位置にアニメーション化されます。

これは次のようになります: https://www.youtube.com/watch?v=AzyA8i27qWc

私は信じているようにパーミッションを正しく設定し、移行を指定しました:

その遷移は次のように定義されます。

リスト内の位置に基づいて、2 つのビューに同じ一意の transitionName 属性を指定しました。

アニメーションを行うために makeSceneTransitionAnimation を使用しています。

(また、フェードアウトを避けるために、navigationBar を共有として指定していますが、これは正常に機能します)

return トランジションが正常に機能するのに、enter トランジションが機能しない理由がわかりません。解決策がエンタートランジションを遅らせることであるという他の質問を見てきましたが、それを試してみましたが、問題は残っています。詳細アクティビティの onCreate に追加したものは次のとおりです。

私の詳細アクティビティには transitionName 要素はありませんが、コードで設定しています。着信アクティビティ (詳細) の関連部分は次のとおりです。

他の関連コードを投稿していただければ幸いです。何か案は?

解決した

Android Development Google+ ページのユーザー Chris P がこれを理解してくれました。onClick メソッドのマスター アクティビティには、次のものがありました。

解決策は、その行を次のように置き換えることでした。

アダプターの getView メソッドを呼び出すと、ビュー自体が再作成されたと思います-リストが最初に作成されたときにのみメソッドを呼び出す必要があると思います。

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

android - FEATURE_ACTIVITY_TRANSITIONS 対 FEATURE_CONTENT_TRANSITIONS

これら 2 つのフラグの違いを理解するのに苦労しており、Windowそれぞれをいつ、なぜ使用する必要があるのか​​ 100% 確信が持てません。

言うためのドキュメントWindow.FEATURE_ACTIVITY_TRANSITIONS

makeSceneTransitionAnimation(Activity, Pair[]) またはで作成された ActivityOptions バンドルを送信または受信することで、Activity が Activity Transitions を実行できるようにします makeSceneTransitionAnimation(Activity, View, String)

そしてWindow.FEATURE_CONTENT_TRANSITIONS言うためのドキュメント:

を使用してウィンドウ コンテンツの変更をアニメーション化するよう要求するためのフラグですTransitionManager

を使用TransitionManagerして設定し setTransitionManager(TransitionManager)ます。何も設定されていない場合は、デフォルトTransitionManagerが使用されます。

ドキュメントには、次のWindowメソッドではフラグを有効にする必要があると記載されていますが、同様に有効にする必要があるFEATURE_ACTIVITY_TRANSITIONSかどうかについては何も述べられていません(ソース コードによると、はデフォルトでマテリアルをテーマにしたアプリケーション用であることに注意してください) 。FEATURE_CONTENT_TRANSITIONSFEATURE_ACTIVITY_TRANSITIONStrueFEATURE_CONTENT_TRANSITIONSfalse

  • get{Enter,Exit,Return,Reenter}Transition()
  • set{Enter,Exit,Return,Reenter}Transition()
  • getSharedElement{Enter,Exit,Return,Reenter}Transition()
  • setSharedElement{Enter,Exit,Return,Reenter}Transition()
  • getTransitionBackgroundFadeDuration()
  • setTransitionBackgroundFadeDuration()

つまり、この情報に基づいてFEATURE_ACTIVITY_TRANSITIONS、アプリケーションが Lollipop の新しい Activity Transition API を使用するために有効にする必要がある機能フラグが得られるようです。しかし、私を混乱させているのは、Android Developers サイトのこの記事FEATURE_CONTENT_TRANSITIONSに、カスタム アクティビティ遷移を実装するには を有効にする必要があると記載されていることです。

だからここに私の質問があります:

  1. これらの 2 つのフラグの違いは何ですか? このコンテキストでの「アクティビティ遷移」と「コンテンツ遷移」の違いは何ですか?
  2. デフォルトでFEATURE_ACTIVITY_TRANSITIONS有効および無効になっているのはなぜですか? 実際にフラグFEATURE_CONTENT_TRANSITIONSを有効にする必要があるのはいつですか?FEATURE_CONTENT_TRANSITIONS
  3. FEATURE_ACTIVITY_TRANSITIONSdisableと enableを意味するのは理にかなっていFEATURE_CONTENT_TRANSITIONSますか? それとも、有効にFEATURE_CONTENT_TRANSITIONSする必要がありますか?FEATURE_ACTIVITY_TRANSITIONS

ありがとう!

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

android - フラグメント間の共有要素遷移

プレイミュージックに似た共有要素遷移要素を作成しようとしています。カードをクリックすると、アルバム アートが新しいフラグメントの ImageView に展開されます。その後、クリックして戻ると、アニメーションがカードに戻ります。エンター アニメーションは正常に実行されていますが、問題はリターンまたはエグジット トランジションです。前のフラグメントに戻るたびにアプリがクラッシュします。これが私が得るエラーです:

java.lang.NullPointerException: null オブジェクト参照で仮想メソッド 'boolean android.support.v4.app.Fragment.getAllowReturnTransitionOverlap()' を呼び出そうとしています

アニメーション/トランジションを実行する方法は次のとおりです。

change_image_transform.xml

content_frame はアクティビティのレイアウト ビュー内にあるため、両方のフラグメントがその中に含まれています。

私の質問は: フラグメントで共有要素遷移を適切に使用するにはどうすればよいですか? ありがとう!

0 投票する
0 に答える
1217 参照

android - ネストされたビューでフラグメント共有要素遷移が機能しない

共有要素のトランジション アニメーションに奇妙な問題があります (トランジション ライブラリのバグかもしれません)。ターゲットAndroid version5.0です。

これが私のレイアウトです:

2 つのフラグメント (FragmentAFragmentB) があります。より大きなサイズをFragmentA持っています。共有要素の遷移が正しく定義され、開いたときに正しくアニメーション化されます。imageViewAFragmentBimageViewAFragmentBimageViewA

ただし、コンテナ(ルートコンテナ)にFragmentA追加された場合に備えて機能します。コンテナcontent_frameに追加FragmentAすると、アニメーションがまったく機能しません。content_main

  • content_secondコンテナにいくつかのビューを追加すると、アニメーションが機能しません。
  • コンテナーを空のままにしておくと、content_secondアニメーションが機能しません。
  • コンテナーを削除しても、content_secondアニメーションが機能しません。

両方のフラグメントが同じコンテナーに追加されます (を使用FragmentTransaction.replace)。

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

android - 共有要素 Fragment Transitions に関するヘルプが必要

Fragment から Fragment への移行についてサポートが必要です。見つけることができるドキュメントがほとんどないため、適切に行う方法が明確ではありません。

映画のポスターを含む GridView があります。1 つのポスターをクリックすると、次のフラグメントに移動します。ポスターは共有要素であり、サイズが変更され (大きくなり)、画面を覆います。他の要素は、コンテンツの遷移に従ってフェードします。 .これは正しく動作します。

再入力トランジションを取得できません。戻るボタンを押している間、グリッド ビューの最初の要素が常に最初に表示され (コンテンツ トランジション (フェード) には従いません)、その後、他の要素がフェード インします。共有要素サイズ変更 (縮小) や他の要素の結合は行われません。他の要素と一緒にフェード インするため、コンテンツ トランジション スタイルに従います。ここに私のコードがあります:

NowShowingFragment.java には、画像付きのグリッドビューが含まれています

私の OnCreateView では、Picasso を使用して Web から画像を読み込みます。そのため、最初に Imageview からビットマップを抽出し、それを Activity に渡します。Activity は、表示する次のフラグメントに渡されます。終わり)。

主な活動

NowShowingDetail では、これは古いフラグメントを置き換える新しいフラグメントです。共有要素を全画面表示するだけです。

change_image_transor.xml


前もって感謝します。

編集:同じコードで、アクティビティ遷移メソッドに変更しました.これは問題なく動作します.フラグメント遷移の呼び出し方が間違っている可能性があると思います.あなたの意見に感謝します.