herkesle birlikte Android fragmanı geçişi! 2 parçam var. Bir parçada kartta küçük bir görüntü var. 2d parçasında, düzenimin başlığında aynı görüntüye sahibim. Ben bu örnekte başka benzeri bir parçasından bu resmin paylaşılan eleman geçiş yapmak isteyen http://1.bp.blogspot.com/-Vv4SxVSI2DY/VEqQxAf3PWI/AAAAAAAAA7c/mfq7XBrIGgo/s1600/activity_transitions%2B(1).gifPaylaşılan öğe
2d parçası:
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/main"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#f2f4f7">
<CustomScrollView
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/scroll_view"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:background="#f2f4f7">
<LinearLayout
android:id="@+id/content_wrapper"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:divider="@drawable/vertical_divider"
android:showDividers="middle">
<FrameLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<RelativeLayout
android:id="@+id/header_wrapper"
android:layout_width="match_parent"
android:layout_height="166.7dp">
<ImageView
android:id="@+id/share_image"
android:transitionName="imageTransition"
android:layout_width="match_parent"
android:layout_height="166.7dp"
android:src="@drawable/friday"/>
1 parçası:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:gravity="center_horizontal"
android:layout_marginTop="56dp"
android:background="#ff1e1e23">
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="25dp"
android:src="@drawable/menuicon1g"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="25dp"
android:gravity="center"
android:textColor="#fff"
android:textSize="22sp"/>
<android.support.v7.widget.CardView
xmlns:card_view="http://schemas.android.com/apk/res-auto"
android:id="@+id/card_view"
android:layout_gravity="center"
android:layout_width="200dp"
android:layout_height="300dp"
android:layout_marginTop="25dp"
card_view:cardCornerRadius="4dp"
card_view:cardBackgroundColor="#fff"
card_view:cardElevation="2dp">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:gravity="center_horizontal">
<ImageView
android:id="@+id/share_image"
android:transitionName="imageTransition"
android:layout_width="match_parent"
android:layout_height="92.5dp"
android:src="@drawable/friday"/>
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="20dp"
android:src="@drawable/demo_calendar"/>
<com.zagum.work.virtualfitness.CustomTextView
xmlns:com.zagum.work.virtualfitness="http://schemas.android.com/apk/res/com.zagum.work.virtualfitness"
android:id="@+id/date"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="18sp"
android:layout_marginTop="10dp"
com.zagum.work.virtualfitness:typeface="fonts/Roboto-Light.ttf"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="15dp"
android:layout_marginBottom="40dp"
android:gravity="center"
android:paddingLeft="40dp"
android:paddingRight="40dp"
android:textSize="18sp"
android:textStyle="bold"/>
</LinearLayout>
</android.support.v7.widget.CardView>
İşlem:
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
View image = mRootView.findViewById(R.id.share_image);
CurrentWorkoutFragment secondFragment = CurrentWorkoutFragment.newInstance();
secondFragment.setSharedElementEnterTransition(TransitionInflater.from(getActivity()).inflateTransition(R.transition.transition_move));
FragmentTransaction trans = getFragmentManager().beginTransaction();
trans.replace(R.id.container, secondFragment);
trans.addToBackStack(null);
trans.addSharedElement(image, image.getTransitionName());
trans.commit();
}
transition_move.xml
<transitionSet xmlns:android="http://schemas.android.com/apk/res/android">
<changeImageTransform />
<changeBounds/>
</transitionSet>
Ama hiçbir görüntü animasyon olur. Sol üst köşede yeniden boyutlandırılır.
bir
<changeTransform/>
eklemektir. Bir fragman listesi kullanırsanız, bir parçayı tıklattığınızda ve tam ekrana geçmek için animasyon kullandığınızda söylerim. Ekstra görünümler zaten parçanın içinde yer alıyor ancak gizlenen bir çeşit bayrak için gizleniyorlar. – VirtualProdigy