に意図したシナリオであるとして遷移が動作しません入力してください。マスターは画像付きのRecyclerView
リストです。詳細はLinearLayout
で親のリストからのヘッダー画像です。トランジションは、XMLで宣言され、そのように細部の活動にバインドされていますRecyclerView
のアダプタの移行でAndroidの活動は、ここでの重複ビュー
<item name="android:windowSharedElementEnterTransition">@transition/activity_enter_shared</item>
<item name="android:windowEnterTransition">@transition/activity_enter</item>
はそうのようにトリガーされます。
final ActivityOptions options = ActivityOptions.makeSceneTransitionAnimation(
mContext,
imgView,
ViewCompat.getTransitionName(imgView)
);
mContext.startActivity(new Intent(mContext, ChildActivity.class), options.toBundle());
問題がある: @transition/activity_enter
で私はfade
を適用していますいくつかのレイアウト要素(例えば、戻るボタン)で。これらの要素はのFrameLayout
に配置されます。これは、画面にスムーズに表示される代わりに、 "ポップイン"というfade
ビューの問題を引き起こすようです。 これは、ビューが重複している場合にのみが発生します。LinearLayout
に配置された場合は、すべてが意図したとおりに動作します。
fade
はそうよう@transition/activity_enter
で宣言されている:
<fade
android:startDelay="300"
android:duration="100"
android:interpolator="@android:interpolator/linear">
<targets>
<target android:targetId="@id/target_id" />
</targets>
</fade>
注1からActivity
fade
でプログラムトリガ場合は正常に動作:
final ViewGroup frame = (ViewGroup) findViewById(R.id.frame);
frame.setOnClickListener(new View.OnClickListener() {
boolean visible;
@Override
public void onClick(View v) {
TransitionManager.beginDelayedTransition(frame);
visible = !visible;
frame.findViewById(R.id.target_id).setVisibility(visible ? View.VISIBLE : View.GONE);
}
});
注2 - 共有遷移(@transition/activity_enter_shared
)カスタムですが、デフォルトのものを使用しても問題は解決しません。
注3 - 最も簡単な、レイアウトでは、次のようになります。
<FrameLayout>
<ImageView />
<ImageButton android:id="@+id/target_id" />
</FrameLayout/>
しかし、問題はFrameLayout
に特異的であるが、ビューのかなり重複していません。
注4 - 。イプサムがフェードインする一方たとえば、次のようなレイアウトにLoremのが、中にポップアップ表示されます