問題タブ [layouttransition]

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

android - RecyclerView: アイテムのサイズ変更をアニメーション化する

私は持っていRecyclerViewます。リサイクラー ビューの各項目は、展開することも展開しないこともできます。同時に展開できるアイテムは 1 つだけです。

本質的に、私はロリポップダイヤラで履歴リストを再作成しようとしています.

RecyclerView で LayoutTransition を使用 するとクラッシュすることがわかりました。

しかし、両方の状態の間でアイテム ビューの変化を正しくアニメーション化できませんでした。

getItemAnimator().setSupportsChangeAnimations(true)と組み合わせて試してみましnotifyItemChanged(getPosition())たが、2 つの問題があります。

  • ビューが再作成され、アイテムが移動すると同時に次のアイテムの上にフェードインするため、トランジションが非常に奇妙になります。表示される新しいビューはサイズ変更ではなく、すでにフル サイズになっています。
  • ビューが再作成されると、古いビューがフェードアウトし、新しいビューがフェードインするため、ビューの背景色がちらつきます。

アニメーションの期間中、アイテム ビューに を設定しようとしLayoutTransitionましたが、このアプローチの問題は、RecycleView のレイアウトがすぐに更新され、アニメーションに従わないことです。

両方の試みのために、この問題の小さなデモ プロジェクトを作成しました。 プロジェクトのソースはこちらです。

アイテムのレイアウト変更をスムーズに移行するにはどうすればよいですか?

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

android - LayoutTransition の消失と変更が同時に発生しない

ここにカスタムの「ボトム アクション バー」があります: https://youtu.be/TPi5jtcs2wE、特定の種類の Web ページ (記事/非記事など) で表示および非表示になります。LinearLayoutで一番外側を設定してanimateLayoutTransition別のLayoutTransitionオブジェクトを作ったのですが、webviewが高さを調整すると同時にバーが消えて欲しいです。明確にするために、バー (relativeLayout) が設定されてView.GONEおり、webView は (layout_weight により) 親に一致するように拡張する必要がありますが、両方を同時に実行しているわけではありません。と を変えLayoutTransition.setDuration()てみ.setStartDelay()ました。

articleActivity xml:

LayoutTransition の構成:

hide_action_bar.xml:

show_action_bar.xml:

私はLayoutTransition.CHANGINGアニメーションがそれを機能させると思っていましたが、そうではありません。WebView の高さの変更とバーの削除を同時に行うにはどうすればよいですか? 期間と開始遅延を設定しても、機能しません。ビューがなくなった後に高さを知る必要があるため、問題はCHANGING後で発生する必要があると思います。View.GONEあれもこれもCHANGINGアニメじゃない。

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

android - Android LinearLayout の子カスタム レンダリング アニメーション

状況は次のとおりです。

LinearLayout垂直に n を含むがありCardViewます。

カードにアニメーションを追加して、レンダリング方法をカスタマイズしたいと考えています。

レイアウトがレンダリングされるとき(おそらくonResume())、上の図のように、アニメーション化されていない場合にカードがとるべき位置に各カードを下からスライドさせたい:ここに画像の説明を入力 黄色の矢印はLinearLayoutpaddingTopと紫色を表す矢印はCardViewmarginBottomを表します。

最終的な位置を取得できないため、これを達成する方法がわかりません。そのため、誰かがすでにこれまたは同様のことを行っているかどうかを尋ねるためにここに来ました。

LayoutTransition追加/削除されたときに子をアニメーション化することをObjectAnimator追加して使用しようとしましたが、のコンストラクターLinearLayoutでビュー(現時点では知らないと思われる子)を渡す必要があります..ObjectAnimator

私もこれを試しました:

しかし、私は位置の値を取得できません(私は常に0を取得します)または.y(-deviceHeight)に変更すると、カードは彼の位置でレンダリングされ、上にスライドする前に下に移動しますLinearLayout paddingTopは考慮されていません..

編集: 要約すると、 android:animateLayoutChanges="true"が設定され、最初の子を削除した場合に似たようなものを作成したいと思います: 他の子は上にスライドして空のままの場所を埋めます (私がしたいことを除いて)各子アニメーション間に遅延を追加します)

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

android - Android - LayoutTransition は、アニメーション ビューを閉じる前に、アニメーション ビュー内のビューを非表示にします。

複数のビューを含むがあります。LinearLayoutビューに追加または削除するときは、デフォルトを使用しましたLayoutTransition

ビューを AppbarLayout に追加しています - ビューを追加する前に appbar に新しい LayoutAnimation を設定し、ビューが追加された後にそれを null に設定することで、プログラムでアニメーションを追加しました - 私はタグを使用してそれを行いませんhttps://code.google.com/p/android/issues/detail?id=191170による xml

問題は、ビューから削除すると、デフォルトのアニメーションが2つの部分で行われることです

  1. 内部のすべてのビューがすぐに消えます
  2. ビューを閉じると、下から上にアニメーション化されます

ビューが下から上に閉じられる2 番目LayoutTransitionのアニメーションのみを表示するには、どの変更が必要ですか?

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

android - Android LayoutTransition - ビューを除外する方法

LayoutTransitionレイアウトの 1 つで自動再配置アニメーションを使用しています。

このレイアウトの特定の子ビューをアニメーション化 (APPEAR アニメーション) から除外する必要があります。私はまだ、他のビューで APPEAR 効果を実行したいと考えています。したがって、単純に APPEAR 効果を無効にすることはできません。

これを達成する方法をまだ見つけられませんでした。どんな助けでも大歓迎です。

ありがとう、アンドロビアン。

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

android - wrap_content を使用した LinearLayout の LayoutTransition

LinearLayout高さが に設定されているビューの追加/削除アクションをアニメーション化しようとしていwrap_contentます。

現在android:animateLayoutChanges="true"、 LinearLayout の設定を試み、次のようにプログラムでトランジションを有効にしました。

Appearing は非常にスムーズに動作するようで、必要に応じてアニメーションやサイズ変更を行います。

私が抱えている問題LinearLayoutは、アニメーションの削除が完了する前にコンテナのサイズが変更されるため、消失することです。

また、 をいじってみましたsetAnimateParentHierarchy()が、コンテナのサイズ変更がいつどのように行われるかに実際には影響していないようです。

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

android - Android レイアウト遷移で特定の要素がアニメーション化されないようにする

Android レイアウト遷移フレームワークについて質問があります。特に、別のビューの可視性に応じて、レイアウトの特定の部分が上下にスライドする効果を実現したいと考えています。

次のレイアウトを想像してください。(そして、ネストされた LinearLayouts を見落としてください ;) )

今私が達成したいのは、changeingView1とchangingView2がその可視性を変更すると、 movingViewが上下にスライドすることです。

親レイアウトのLayoutTransition.CHANGINGを有効にすることで、スライド部分が正常に動作するようになります。ただし、これには、このレイアウトが境界を変更するため、追加または削除されたアイテムがある場合に、movingViewもアニメーション化されるという副作用があります。そして、これが非常に奇妙に見えるアニメーションになるため、ここに私の問題があります。

それでは私の質問に戻ります。movingViewでレイアウト バウンドの変更をアニメーション化せずにスライド アニメーションを維持する方法はありますか?

これは子ビューのアニメーションにのみ影響するため、movingView でlayoutTransitionsを無効にしても明らかに役に立ちません。また、親レイアウトでさまざまな LayoutTransitions を有効または無効にして遊んでみましたが、これまでのところ、目的の効果はありませんでした。

詳細を追加できる場合はお知らせください。そうでない場合は、誰かが私を助けてくれることを願っています。

前もって感謝します!

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

android - LayoutTransition の期間を無視する ObjectAnimator

で設定した期間をレイアウト トランジションが無視していsetDuration()ます。設定した値に関係なく、デフォルトを使用しているようです。ここで 50 秒を試しましたが、数ミリ秒後に消えます。

上記のコード スニペットは、消えるビューを 50 秒かけてフェードアウトさせるはずですが、代わりに約 300 ミリ秒かけてフェードアウトします。

この質問とこの質問を見てきましたが、開発者向けオプションでアニメータースケールを1xに設定しています。

開発者向けオプション