7

jeder! Ich habe 2 Fragmente. In einem Fragment habe ich ein kleines Bild in der Karte. In 2d Fragment habe ich das gleiche Bild in der Kopfzeile meines Layouts. Ich möchte shared Element Übergang dieses Bildes von einem Fragment zu einem anderen, wie in diesem Beispiel http://1.bp.blogspot.com/-Vv4SxVSI2DY/VEqQxAf3PWI/AAAAAAAAA7c/mfq7XBrIGgo/s1600/activity_transitions%2B(1).gifAndroid-Fragment Übergang mit gemeinsamen Element

2d Fragment machen:

<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. Fragment:

<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> 

Transaktion:

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(); 
      } 
691.363.210

transition_move.xml

<transitionSet xmlns:android="http://schemas.android.com/apk/res/android"> 
    <changeImageTransform /> 
    <changeBounds/> 
</transitionSet> 

Aber kein Bild Animation passiert. Es erscheint in der oberen linken Ecke eine Größenanpassung.

+0

Das Animation interessant hinzuzufügen ist. Ich würde sagen, wenn Sie eine Liste von Fragmenten verwenden, wenn Sie auf ein Fragment klicken, beginnt es und die Animation nimmt den gesamten Bildschirm ein. Alle zusätzlichen Ansichten sind bereits in dem Fragment, aber sie sind versteckt, um irgendeine Art von Flaggen zu verändern – VirtualProdigy

Antwort

0

Auschecken this Antwort.

Da die Ansicht, die ich zwischen zwei Fragmente bin teilen, ist ein Kind einer anderen Ansicht (RelativeLayout) im zweiten Fragment, müssen Sie die ChangeTransform Übergang zu Ihrem TransitionSet hinzuzufügen.

Im Grunde, was Sie brauchen, ist ein <changeTransform/> in Ihrem transition_move.xml

Verwandte Themen