問題タブ [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 投票する
3 に答える
5234 参照

android - 一時停止すると、カスタムの循環表示トランジションで「java.lang.UnsupportedOperationException」が発生しますか?

アクティビティの入力トランジションの一部として使用するカスタムの円形のリビール トランジションを作成しました (具体的には、 を呼び出してウィンドウの入力トランジションとしてトランジションを設定していますWindow#setEnterTransition())。

これで正常に動作します。ただし、遷移の途中で「戻るボタン」をクリックすると、次の例外が発生します。

このエラーが発生する特定の理由はありますか? どのように避けるべきですか?

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

android - フラグメント間でアニメーション化する共有要素

RecyclerView で選択したアイテムから新しいフラグメントに 2 つの単純なビューをアニメーション化しようとしています。あるアクティビティから別のアクティビティに共有要素をアニメーション化する例をたくさん見てきましたが、同じアクティビティ内であるフラグメントから別のフラグメントに共有要素をアニメーション化する例はほとんどありません。それはほとんど動作します。

これが私の構造です。

アクティビティ

-- RecyclerView を使用したフルスクリーン Fragment1

-- フルスクリーン Fragment2 と詳細

ユーザーが Fragment1 の RecyclerView 内のアイテムを選択すると、Fragment1 を Fragment2 に置き換えます。この Fragment2 には、共有要素が異なる位置とサイズで含まれる View があります。

それを機能させるにはちょっとしたコツがあります。transitionName がリスト内の各項目に対して一意であることを確認する必要があります。もちろん、その transitionName は、アニメーションを再生する Fragment2 の要素の transitionName と一致する必要があります。この部分は機能しています。アイテムを選択すると、2 つの共有ビューがアニメーション化されますが、2 つのアクティビティ間でそれを行うときに期待する方法とはまったく異なります。

画面の下部にある項目を選択すると、Fragment2 のビューが描画され、2 つの共有ビューが画面上部の項目にあるかのようにアニメーション化されます。説明するのは難しい。ここにいくつかの写真があります

フラグメント1 リストの一番下にある項目を選択

フラグメント2 青い線が下から上にアニメーション化されることを期待しますが、上から始まり、水平方向にのみ成長し、黄色の線は下の近くにとどまると予想されますが、水平に成長しますが、画面の上部から始まりますそしてアニメーションダウン

両方のフラグメントで、次を設定しています

onCreate() の親アクティビティにも設定しました

共有要素のアニメーションが、画面の下部にある選択したアイテムで開始されているのに、画面の上部から開始される理由は何ですか?

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

android - Android 共有要素の 21 歳前の移行

21 より前のデバイスで共有要素の遷移を実装するにはどうすればよいですか? ここのガイドに多かれ少なかれ従いましたhttp://antonioleiva.com/material-design-everywhere/しかし、「属性 transitionName はAPIレベル21以上でのみ使用されます」のようなエラーが表示されます

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

android - Lollipop でのアクティビティとフラグメントの遷移

Activity Transitionの新しいフレームワークについて頭を悩ませようとしていLollipopます。Activity Transition は非常に簡単に機能し、いくつかの基本的な情報がここにありますが、Fragment Transition文書化されておらず、機能させることができません。私はこのユースケースを試しました(Androidでは非常に一般的です):

ケース 1: ActA+FragA -> ActB+FragB

sharedElementはとの画像です。動作するコードが思いつかなかったので、一歩下がって試してみましたFragAFragB

ケース 2: ActA+FragA -> ActB

と のsharedElementを使用FragAActBます。アニメーションが機能しません。FragA の画像をクリックすると、画像が消え、アニメーションの持続時間の後に ActB にポップアップすることしかわかりません。FragA の外側で ActA の内側にある共有ビュー (Toolbarたとえば) は、正しくアニメーション化されます。

この場合、sharedImage は RecyclerView の imageView ですandroid:transitionName="shared_icon"。アイテムのレイアウト xml の xml タグが機能しない可能性がありますか?

これは私のテーマです:

window_transition.xml:

shared_element_transition.xml:

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

android - アクティビティと共有ビューの間のアニメーション: アニメーションの最後にグリッチ/ハック?

したがって、私が直面している問題は、2 つのアクティビティと 2 つの共有ビューの間で行うアニメーションが見栄えがよくないことです。

問題は、Activity2 から Activity1 に戻るときに「グリッチ」が発生し、共有されている TextView がアニメーションの最後に点滅し、Activity2 からの「より大きなテキスト」がほんの一瞬表示されるため、「点滅する」ことです。 "。

アクティビティ 1 (3 つのアイテムを含む RecyclerView):

ここに画像の説明を入力

アクティビティ 2 (詳細):

ここに画像の説明を入力

アニメーションをしながら画面を撮影しました。Activity2 から Activit2 に戻ると、テキストが最後に点滅するのがわかります。このビデオ (36MB、サイズは申し訳ありません) はそれを示しています:

https://drive.google.com/file/d/0B3wIZ9CS9Kj_a0MyVFlzX1YtY0E/view?usp=sharing

問題は、私が間違っていることは何ですか? なんでこんなに点滅するの?他のアニメの動画も見ますが、どれもとても滑らかで素敵です。

さまざまな種類のトランジション (changeBounds、explode など) をテストしましたが、常に奇妙なことが起こっています。任意のヒント、アイデアをいただければ幸いです =)

マイコード

MainActivity (Activity1):

詳細アクティビティ (Activity2):

そして、RecyclerView のリストにある最初の my_text_view のレイアウト:

そして activity_details.xml:

遷移 xml (/res/transition 内):

そしてstyles.xml

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

android - Android L 遷移とホームアップ ボタン

私は新しい Android L トランジション、特に共有要素トランジションと Slide() を使用しています。戻るボタンを押すと、遷移が完全に機能し、共有 ImageView がスライドして正しい場所に遷移しますが、ActionBar のホームアップ ボタンを押すと、新しい遷移が無視されます。

受信アクティビティに次のコード ブロックを設定します。

そして、「メイン」アクティビティのこのコード ブロック:

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

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

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

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

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

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