नई साझा तत्व संक्रमण काम करता है के साथ काम नहीं करता है जब मैं का उपयोग टुकड़ा 'की जगह' लेकिन मैं यह टुकड़ा काम करने के लिए नहीं कर पा रहे '' जोड़ें। मैं दोनों मामलों में एक ही कंटेनर का उपयोग करता हूं।साझा तत्व संक्रमण FragmentTransaction.replace() के साथ काम करता है लेकिन FragmentTransaction.add()
अधिक विवरण:
गतिविधि - लेआउट>
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/container"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#00ffff"
android:orientation="vertical" >
</FrameLayout>
गतिविधि के शुभारंभ पर, मैं Fragment1 स्क्रीन
getFragmentManager().beginTransaction().replace(R.id.container,new TransitionTestFragment1(), "TransitionTestFragment1").commit();
करने के लिए एक के लिए जोड़ने के एक क्लिक करें घटना पर Fragment1 के लेआउट में देखें -> मैं स्क्रीन पर Fragment2 जोड़ता हूं। मैं पहली बार टुकड़ा के onCreateView में श्रोता सेट
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
final TransitionSet transitionSet = new TransitionSet();
transitionSet.addTransition(new ChangeImageTransform());
transitionSet.addTransition(new ChangeBounds());
transitionSet.addTransition(new ChangeTransform());
transitionSet.setDuration(300);
View v=inflater.inflate(R.layout.fragment1, null);
final View image=v.findViewById(R.id.image);
image.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
setSharedElementReturnTransition(transitionSet);
Fragment fragment = new TransitionTestFragment2();
fragment.setSharedElementEnterTransition(transitionSet);
FragmentTransaction ft = getFragmentManager().beginTransaction()
.replace(R.id.container, fragment)
.addToBackStack("transaction")
.addSharedElement(image, "MyTransition");
ft.commit();
}
});
return v;
}
मैं दोनों टुकड़ों के लेआउट
<ImageView
android:layout_width="300dp"
android:layout_height="300dp"
android:src="@drawable/ic_launcher"
android:transitionName="MyTransition" />
अब में इस छवि दृश्य है, अगर मैं FragmentTransaction.add()
का उपयोग संक्रमण काम नहीं करता है दूसरा टुकड़ा जोड़ने के लिए, लेकिन यह काम करता है अगर मैं इसके बजाय FragmentTransaction.replace()
का उपयोग करता हूं। मैं इसे add() के साथ कैसे काम कर सकता हूं? क्या यह सभी के लिए संभव है?
मैं भी इस समस्या का सामना करना पड़ रहा में पॉप ... आप एक समाधान मिला? –