Mointy:
私が持っているConstraintLayout
一番下のナビゲーションと画面の残りの部分を占めるフラグメントコンテナと。私が欲しいのは、プログラムの追加/ナビゲーションとアニメーションでフラグメントコンテナ間のビューを削除することです。
私は、新しいビューを追加し、アニメーション化するには、このコードを持っています:
//Adding the view to the main layout
ConstraintLayout layout = findViewById(R.id.ConstraintLayout);
getLayoutInflater().inflate(R.layout.newView, layout);
//Start animation immediately with a library
YoYo.with(Techniques.SlideInUp).duration(800).playOn(findViewById(R.id.newView));
今、上記のコードは私のために、固体は見えません。私はより良い方法を見つけるしたいと思いますが、今のところ、それは動作します。
新しいビューを追加した後、私は新しいビューの上部にナビゲーションの最上部からのフラグメントコンテナの制約を変更します。断片コンテナのサイズはそれほど制約を変更することにより、それが今少し小さくなり、match_constrainstするように設定されています。
ConstraintSet constraintSet = new ConstraintSet();
constraintSet.clone(layout);
constraintSet.connect(R.id.fragment_container,ConstraintSet.BOTTOM,R.id.newViewWrapper,ConstraintSet.TOP,0);
constraintSet.applyTo(layout);
私は何を管理していなかったことは、フラグメントコンテナのサイズ変更をアニメーション化することです。そして、全体的に私はアンドロイドにアニメーションで働いたことはありません。
アンドロイドでビューやレイアウトをアニメーションのよりよいまたはベストプラクティスの方法はありますか、それを行うことができますライブラリはありますか?
伝説バード:
あなたが使用している場合Constraintlayout
よりも、あなたは使用することができTransitionManager
、あなたのレイアウトのアニメーションのために。基本的なセットアップは、このようなものです:
TransitionManager.beginDelayedTransition(layout);
それは自動的にビュー/制約のサイズを変更するたとえば、あなた一度レイアウトをアニメーション化します。
制約を変更するには、使用することができますConstraintSet
。