私はオレンジ色の枠がHostFragment
このように構築されAndroidの共有要素転移、間違った開始位置
下の画像内の1つのようなレイアウトを持っています青のフレームはRecyclerView
の子であるItemsFragment
です。
RecyclerView
のタイルをクリックすると、HostFragment
を別のContentFragment
という部分に置き換えます。これはクリックした画像を共有すると考えられます。私は次のように共有要素のトランジションを適用することによって、それを行う:
FragmentManager fm = getChildFragmentManager();
Fragment fragment = ContentFragment.newInstance();
AutoTransition autoTransition = new AutoTransition();
autoTransition.setDuration(3000);
fragment.setSharedElementEnterTransition(autoTransition);
fm.beginTransaction()
.replace(R.id.library, fragment)
.addSharedElement(view, "cover")
.commit();
それは一つのことの横に正常に動作します:アニメーションがContentFragmentで起動したときにカバータイルの初期位置が間違っている(see this screen cast video) - それはオフセット底に望ましくないました。
視覚的には、このオフセットは、タブバーの高さと同じに見えます(HostFragment
)。あなたは、このオフセットを避ける方法を知っていますか?
RecyclerView's
の子どもはすべて固有のtransitionNames
です。
問題を分離して、CoordinatorLayoutによって引き起こされているかどうか確認しましたか?これはバグのクラスなので、単純な 'FrameLayout'の親でアニメーションを実行し、問題がまだ存在するかどうか確認します。 –
@PaulBurkeそれを調べていただきありがとうございます。私は最近のサポートとデザインライブラリの問題の量によってちょっと動揺しています。だから今は別の種類のアニメーションを使うことに決めました。私は落ち着くまでに時間が必要です。それから私は問題を切り離そうとします。 –