問題タブ [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.
android - Dialog Activity による共有要素遷移
ダイアログ テーマ ( github のソース コード) でアクティビティを開始するときに共有要素遷移を使用する非常に単純なアプリをまとめました。
次の結果が得られました。
ご覧のとおり、トランジション/アニメーションには 2 つの問題があります。
- アニメーションはダイアログ アクティビティの領域でのみ表示されるため、クリップして見苦しくなります。
- アクティビティの外側をタップして戻ると、トランジション/アニメーションがありません。
これらの問題を解決するにはどうすればよいですか? どんな助けでも大歓迎です。
編集: Quanturiumの回答の後、私はそれを機能させるために次のことを行いました:
ダイアログ テーマの代わりに次のテーマを使用します。
ダイアログの外観、および丸みを帯びた角と影の背景として CardView を使用します。
finishAfterTransition() を呼び出します。ユーザーが CardView の外をタップしたとき。
現在、この (コード) のように見えます。CardView は、ダイアログによりよく一致するように調整する必要がありますが、少なくとも機能しています。
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 メソッドを呼び出すと、ビュー自体が再作成されたと思います-リストが最初に作成されたときにのみメソッドを呼び出す必要があると思います。
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_TRANSITIONS
FEATURE_ACTIVITY_TRANSITIONS
true
FEATURE_CONTENT_TRANSITIONS
false
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
に、カスタム アクティビティ遷移を実装するには を有効にする必要があると記載されていることです。
だからここに私の質問があります:
- これらの 2 つのフラグの違いは何ですか? このコンテキストでの「アクティビティ遷移」と「コンテンツ遷移」の違いは何ですか?
- デフォルトで
FEATURE_ACTIVITY_TRANSITIONS
有効および無効になっているのはなぜですか? 実際にフラグFEATURE_CONTENT_TRANSITIONS
を有効にする必要があるのはいつですか?FEATURE_CONTENT_TRANSITIONS
FEATURE_ACTIVITY_TRANSITIONS
disableと enableを意味するのは理にかなっていFEATURE_CONTENT_TRANSITIONS
ますか? それとも、有効にFEATURE_CONTENT_TRANSITIONS
する必要がありますか?FEATURE_ACTIVITY_TRANSITIONS
ありがとう!
android - フラグメント間の共有要素遷移
プレイミュージックに似た共有要素遷移要素を作成しようとしています。カードをクリックすると、アルバム アートが新しいフラグメントの ImageView に展開されます。その後、クリックして戻ると、アニメーションがカードに戻ります。エンター アニメーションは正常に実行されていますが、問題はリターンまたはエグジット トランジションです。前のフラグメントに戻るたびにアプリがクラッシュします。これが私が得るエラーです:
java.lang.NullPointerException: null オブジェクト参照で仮想メソッド 'boolean android.support.v4.app.Fragment.getAllowReturnTransitionOverlap()' を呼び出そうとしています
アニメーション/トランジションを実行する方法は次のとおりです。
change_image_transform.xml
content_frame はアクティビティのレイアウト ビュー内にあるため、両方のフラグメントがその中に含まれています。
私の質問は: フラグメントで共有要素遷移を適切に使用するにはどうすればよいですか? ありがとう!
android - ネストされたビューでフラグメント共有要素遷移が機能しない
共有要素のトランジション アニメーションに奇妙な問題があります (トランジション ライブラリのバグかもしれません)。ターゲットAndroid version
は5.0
です。
これが私のレイアウトです:
2 つのフラグメント (FragmentA
とFragmentB
) があります。より大きなサイズをFragmentA
持っています。共有要素の遷移が正しく定義され、開いたときに正しくアニメーション化されます。imageViewA
FragmentB
imageViewA
FragmentB
imageViewA
ただし、コンテナ(ルートコンテナ)にFragmentA
追加された場合に備えて機能します。コンテナcontent_frame
に追加FragmentA
すると、アニメーションがまったく機能しません。content_main
content_second
コンテナにいくつかのビューを追加すると、アニメーションが機能しません。- コンテナーを空のままにしておくと、
content_second
アニメーションが機能しません。 - コンテナーを削除しても、
content_second
アニメーションが機能しません。
両方のフラグメントが同じコンテナーに追加されます (を使用FragmentTransaction.replace
)。
android - 共有要素 Fragment Transitions に関するヘルプが必要
Fragment から Fragment への移行についてサポートが必要です。見つけることができるドキュメントがほとんどないため、適切に行う方法が明確ではありません。
映画のポスターを含む GridView があります。1 つのポスターをクリックすると、次のフラグメントに移動します。ポスターは共有要素であり、サイズが変更され (大きくなり)、画面を覆います。他の要素は、コンテンツの遷移に従ってフェードします。 .これは正しく動作します。
再入力トランジションを取得できません。戻るボタンを押している間、グリッド ビューの最初の要素が常に最初に表示され (コンテンツ トランジション (フェード) には従いません)、その後、他の要素がフェード インします。共有要素サイズ変更 (縮小) や他の要素の結合は行われません。他の要素と一緒にフェード インするため、コンテンツ トランジション スタイルに従います。ここに私のコードがあります:
NowShowingFragment.java には、画像付きのグリッドビューが含まれています
私の OnCreateView では、Picasso を使用して Web から画像を読み込みます。そのため、最初に Imageview からビットマップを抽出し、それを Activity に渡します。Activity は、表示する次のフラグメントに渡されます。終わり)。
主な活動
NowShowingDetail では、これは古いフラグメントを置き換える新しいフラグメントです。共有要素を全画面表示するだけです。
change_image_transor.xml
前もって感謝します。
編集:同じコードで、アクティビティ遷移メソッドに変更しました.これは問題なく動作します.フラグメント遷移の呼び出し方が間違っている可能性があると思います.あなたの意見に感謝します.