7

tutti! Ho 2 frammenti. In un frammento ho una piccola immagine in una carta. Nel frammento 2d ho la stessa immagine nell'intestazione del mio layout. Voglio fare condivisa elemento di transizione di questa immagine da un frammento all'altro come in questo esempio http://1.bp.blogspot.com/-Vv4SxVSI2DY/VEqQxAf3PWI/AAAAAAAAA7c/mfq7XBrIGgo/s1600/activity_transitions%2B(1).gifTransizione frammento Android con elemento condiviso

2d frammento:

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

primo frammento:

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

transazione:

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> 

Ma nessuna animazione immagine accade. Appare nell'angolo in alto a sinistra e ridimensiona.

+0

che l'animazione è interessante. Direi che se usi un elenco di frammenti, quando fai clic su un frammento inizia e l'animazione diventa tutto schermo. Tutte le viste in più sono già nel frammento ma sono nascoste a cambiare in qualche modo – VirtualProdigy

risposta

0

Verificare this risposta.

perché la vista sto condividendo tra 2 frammenti è figlio di un altro vista (RelativeLayout) nel 2 ° frammento, è necessario aggiungere la transizione ChangeTransform al vostro TransitionSet.

Fondamentalmente ciò che è necessario è quello di aggiungere un <changeTransform/> nel vostro transition_move.xml

Problemi correlati