2015-10-26 17 views
5

私はオレンジ色の枠がHostFragmentこのように構築されAndroidの共有要素転移、間違った開始位置

enter image description here

下の画像内の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です。

+0

問題を分離して、CoordinatorLayoutによって引き起こされているかどうか確認しましたか?これはバグのクラスなので、単純な 'FrameLayout'の親でアニメーションを実行し、問題がまだ存在するかどうか確認します。 –

+2

@PaulBurkeそれを調べていただきありがとうございます。私は最近のサポートとデザインライブラリの問題の量によってちょっと動揺しています。だから今は別の種類のアニメーションを使うことに決めました。私は落ち着くまでに時間が必要です。それから私は問題を切り離そうとします。 –

答えて

0

私はこの質問が古代であることを知っていますが、私はこれと同様の問題で戦ってきました。

最後に、親ビューxmlのandroid:clipChildrenフラグをfalseに変更するだけでした。

関連する問題