問題タブ [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.
android - RecyclerView: アイテムのサイズ変更をアニメーション化する
私は持っていRecyclerView
ます。リサイクラー ビューの各項目は、展開することも展開しないこともできます。同時に展開できるアイテムは 1 つだけです。
本質的に、私はロリポップダイヤラで履歴リストを再作成しようとしています.
RecyclerView で LayoutTransition を使用 するとクラッシュすることがわかりました。
しかし、両方の状態の間でアイテム ビューの変化を正しくアニメーション化できませんでした。
getItemAnimator().setSupportsChangeAnimations(true)
と組み合わせて試してみましnotifyItemChanged(getPosition())
たが、2 つの問題があります。
- ビューが再作成され、アイテムが移動すると同時に次のアイテムの上にフェードインするため、トランジションが非常に奇妙になります。表示される新しいビューはサイズ変更ではなく、すでにフル サイズになっています。
- ビューが再作成されると、古いビューがフェードアウトし、新しいビューがフェードインするため、ビューの背景色がちらつきます。
アニメーションの期間中、アイテム ビューに を設定しようとしLayoutTransition
ましたが、このアプローチの問題は、RecycleView のレイアウトがすぐに更新され、アニメーションに従わないことです。
両方の試みのために、この問題の小さなデモ プロジェクトを作成しました。 プロジェクトのソースはこちらです。
アイテムのレイアウト変更をスムーズに移行するにはどうすればよいですか?
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
アニメじゃない。
android - Android LinearLayout の子カスタム レンダリング アニメーション
状況は次のとおりです。
LinearLayout
垂直に n を含むがありCardView
ます。
カードにアニメーションを追加して、レンダリング方法をカスタマイズしたいと考えています。
レイアウトがレンダリングされるとき(おそらくonResume())、上の図のように、アニメーション化されていない場合にカードがとるべき位置に各カードを下からスライドさせたい:
黄色の矢印は
LinearLayout
のpaddingTopと紫色を表す矢印はCardView
のmarginBottomを表します。
最終的な位置を取得できないため、これを達成する方法がわかりません。そのため、誰かがすでにこれまたは同様のことを行っているかどうかを尋ねるためにここに来ました。
LayoutTransition
追加/削除されたときに子をアニメーション化することをObjectAnimator
追加して使用しようとしましたが、のコンストラクターLinearLayout
でビュー(現時点では知らないと思われる子)を渡す必要があります..ObjectAnimator
私もこれを試しました:
しかし、私は位置の値を取得できません(私は常に0を取得します)または.y(-deviceHeight)に変更すると、カードは彼の位置でレンダリングされ、上にスライドする前に下に移動しますLinearLayout
が、paddingTopは考慮されていません..
編集: 要約すると、 android:animateLayoutChanges="true"が設定され、最初の子を削除した場合に似たようなものを作成したいと思います: 他の子は上にスライドして空のままの場所を埋めます (私がしたいことを除いて)各子アニメーション間に遅延を追加します)
android - Android - LayoutTransition は、アニメーション ビューを閉じる前に、アニメーション ビュー内のビューを非表示にします。
複数のビューを含むがあります。LinearLayout
ビューに追加または削除するときは、デフォルトを使用しましたLayoutTransition
。
ビューを AppbarLayout に追加しています - ビューを追加する前に appbar に新しい LayoutAnimation を設定し、ビューが追加された後にそれを null に設定することで、プログラムでアニメーションを追加しました - 私はタグを使用してそれを行いませんhttps://code.google.com/p/android/issues/detail?id=191170による xml
問題は、ビューから削除すると、デフォルトのアニメーションが2つの部分で行われることです
- 内部のすべてのビューがすぐに消えます
- ビューを閉じると、下から上にアニメーション化されます
ビューが下から上に閉じられる2 番目LayoutTransition
のアニメーションのみを表示するには、どの変更が必要ですか?
android - Android LayoutTransition - ビューを除外する方法
LayoutTransition
レイアウトの 1 つで自動再配置アニメーションを使用しています。
このレイアウトの特定の子ビューをアニメーション化 (APPEAR アニメーション) から除外する必要があります。私はまだ、他のビューで APPEAR 効果を実行したいと考えています。したがって、単純に APPEAR 効果を無効にすることはできません。
これを達成する方法をまだ見つけられませんでした。どんな助けでも大歓迎です。
ありがとう、アンドロビアン。
android - wrap_content を使用した LinearLayout の LayoutTransition
LinearLayout
高さが に設定されているビューの追加/削除アクションをアニメーション化しようとしていwrap_content
ます。
現在android:animateLayoutChanges="true"
、 LinearLayout の設定を試み、次のようにプログラムでトランジションを有効にしました。
Appearing は非常にスムーズに動作するようで、必要に応じてアニメーションやサイズ変更を行います。
私が抱えている問題LinearLayout
は、アニメーションの削除が完了する前にコンテナのサイズが変更されるため、消失することです。
また、 をいじってみましたsetAnimateParentHierarchy()
が、コンテナのサイズ変更がいつどのように行われるかに実際には影響していないようです。
android - Android レイアウト遷移で特定の要素がアニメーション化されないようにする
Android レイアウト遷移フレームワークについて質問があります。特に、別のビューの可視性に応じて、レイアウトの特定の部分が上下にスライドする効果を実現したいと考えています。
次のレイアウトを想像してください。(そして、ネストされた LinearLayouts を見落としてください ;) )
今私が達成したいのは、changeingView1とchangingView2がその可視性を変更すると、 movingViewが上下にスライドすることです。
親レイアウトのLayoutTransition.CHANGINGを有効にすることで、スライド部分が正常に動作するようになります。ただし、これには、このレイアウトが境界を変更するため、追加または削除されたアイテムがある場合に、movingViewもアニメーション化されるという副作用があります。そして、これが非常に奇妙に見えるアニメーションになるため、ここに私の問題があります。
それでは私の質問に戻ります。movingViewでレイアウト バウンドの変更をアニメーション化せずにスライド アニメーションを維持する方法はありますか?
これは子ビューのアニメーションにのみ影響するため、movingView でlayoutTransitionsを無効にしても明らかに役に立ちません。また、親レイアウトでさまざまな LayoutTransitions を有効または無効にして遊んでみましたが、これまでのところ、目的の効果はありませんでした。
詳細を追加できる場合はお知らせください。そうでない場合は、誰かが私を助けてくれることを願っています。
前もって感謝します!