問題タブ [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 - DialogFragment および ScrollView を使用する場合の共有要素遷移のちらつき
アップデート:
https://github.com/ulyssesp/SharedElementTransitionsに再現があります。
これは、遷移中の ImageView を保持する DialogFragment がある場合にのみ発生し、たまにしか発生しません。その場合、画像が DialogFragment の下部から外れていてもまだ表示されている場合は、画像の一部が正しくレンダリングされていることがわかります。DialogFragment が ImageView の後 (したがって上) にレンダリングされる競合状態のように感じます。
ピカソとキャッシュを使用して画像をロードするImageView
ためScrollView
の共有要素トランジションを使用しようとしています。DialogFragment
をScrollView
スクロールすると、トランジションに入るときにちらつきが発生することがあります。
https://drive.google.com/file/d/0B9K_Hjcu9iFOV3lYNVB1UlpsNTQ/view?usp=sharing
上のビデオ ファイルの最後のクリックは、私が話していることを最もよく示しています。ちらつきは毎回発生するとは限らないことに注意してください。ちらつきが発生するには、スクロール ビューをスクロールする必要があります。実際のプロジェクトではもっと多くのことが起こっていますが、これはバグを再現するための最小限のサンプル プロジェクトです。
関連コード:
スタイル.xml:
ImageFragment::onCreateView:
ImageDisplayActivity:
洞察がある場合、またはさらに情報が必要な場合は、お知らせください。
android - 共有要素の遷移中にヒーロー ビューの位置が正しく計算されない
Toolbars と CoordinatorLayouts の 2 つのアクティビティが両方にあります。
CoordinatorLayout のおかげで、ツールバーはスクロールして非表示にすることができます。
それらの間で共有要素の遷移を作成しようとしていますが、これまでに行った手順は次のとおりです。
- 画像ビューをヒーロー ビューとして設定します。
- ツールバー、ナビゲーションバー、ステータスバーもヒーローとして設定して、オーバーレイの問題を回避します。
これが私の問題です:
共有要素のアニメーションが開始されると、ヒーロー ツールバーが上から下にスライドし、画面全体が上から下に移動します。
ヒーロー イメージビューの位置はこのアニメーションの前に計算されるため、移動アニメーションの後に最終的な位置に点滅します。
アニメーターにイメージビューの最終位置を正しく計算させる方法はありますか?
問題に十分に対処したかどうかわからないので、コメントで追加情報を提供できます。
長い質問で申し訳ありません。
前もって感謝します。
android - 「フォントサイズが大きすぎてキャッシュに収まりません」なしで大きなテキストを表示し、共有要素遷移が壊れていない方法
TextView の要素遷移をいくつかのテキストと共有しました。文字サイズが 25sp から 200sp に変更されます。
テキストに色付きの絵文字 (☺) が含まれている場合、「フォント サイズが大きすぎてキャッシュに収まりません」というメッセージが表示されます。
私が知っているように、グリフ テクスチャの最大高さを決定する android プロパティ "ro.hwui.text_large_cache_height" がありますが、それは textSize と等しくないため、どのように使用できるかわかりません。
textview.setLayerType(View.LAYER_TYPE_SOFTWARE, null) を設定すると、テキストの表示に関する問題は解決されますが、トランジションが中断されます。テキストは最後にのみ表示されます。
どうすれば修正できますか?ありがとう。
android - ImageView 共有要素遷移 (Activity 間) が間違った scaleType で始まる
冒頭でフレスコのSimpleDraweeViewに問題を発見。ただし、Android ImageView に置き換えた後も問題は解決しません。そのため、問題が Android に起因するのか、フレスコだけに起因するのかはわかりません。
問題は何ですか
- 最初のアクティビティにはリサイクル ビューがあり、各ビューには ImageView (または SimpleDraweeView) があります。必要なscaleTypeは「centerCrop」です
- 2 番目のアクティビティには、ImageView が 1 つだけあります。必要なscaleTypeは「fitCenter」です
ただし、私のプライベート プロジェクトとサンプル プロジェクトでも。
https://github.com/JackFan-Z/ActivitySharedElementTransition
ImageView は scaleType "fitCenter" で始まりますが、これは間違っています。
共有要素の遷移を延期し、SharedElementCallback のコールバックで共有要素の別の scaleType を設定しようとしました。しかし、どれも実際には機能しません。何が問題なのか、またはどこでデバッグするのかを理解するのを手伝ってくれる人はいますか?
問題のスクリーンショット
android - マスター/詳細ペイン レイアウトで共有要素 ImageView を ListView フラグメントから詳細ビュー フラグメントにアニメーション化する方法
私のアプリケーション タブレット レイアウトには、画像のグリッドを含むグリッド ビュー (RecyclerView) が左側にあり、詳細ビューが右側にあり、現在選択されているグリッド ビュー画像の縮小版とその画像を説明する追加のテキスト ビューが表示されます。クリックした画像ビュー (左側のグリッド ビュー フラグメント) を詳細ビュー フラグメントの一致する位置にスライドおよびスケーリングする共有要素アニメーション トランジションを提供する方法を見つけようとしています。各画像の選択をバックスタックに記録したくないため、私のアプリケーションは「入力」トランジションのみを必要とします。
OnItemClick(View view)
次のように、ハンドラーで標準の共有要素サポート呼び出しを使用してみました。
"view" 変数は、ユーザーがグリッド ビューでクリックした ImageView です。私の詳細フラグメントのonCreate()
メソッドにもエントリが含まれています
次の change_image_transform.xml トランジション セットも使用しています。
一緒に
これらの設定はすべて、シングル ペイン モードで適切に機能します。ユーザーがグリッド ビュー アクティビティ内の画像をクリックすると、(新しいアクティビティ内の) 詳細フラグメントがグリッド ビューを置き換え、アニメーションは入口と出口の両方のシナリオで完全に機能します。
ただし、2 ペイン モードでは、画像はグリッド ビューのソースから新しく作成された詳細フラグメントの宛先にスライドおよびスケーリングされません。私が抱えている問題は、ソース ImageView が永続的に表示されるグリッド ビュー フラグメントに存在するため、アニメーション フレームワークのトランジション処理に含まれないことが原因であると考えています。
私の検索では、単純なカスタム アニメーションを使用するという漠然とした推奨事項以外に、この問題に対する明確な答えは見つかりませんでした。テストとして単純な TranslateAnimation (スケーリングなし) を試しましたが、これには 2 つの問題がありました: 画像がグリッド ビュー フラグメントの境界を越えることができず、実際に画像を「移動」するという望ましくない副作用がありました (アニメーションが実行されている間、グリッド ビューに一時的に空のスポットが表示されます)。最終的に、目的の効果は、元の画像が消去されることなく、ソースから宛先への画像のスライドとスケーリングを確認することです。
提案やアドバイスをいただければ幸いです。