0

Ich konnte Übergang des geteilten Elements zwischen zwei Fragmenten OHNE RECYCLERVIEW !!!Wie man Übergang zwischen geteilten Elementen zwischen FirstFragment (einschließlich RecyclerView) und SecondFragment verwendet

Dies ist FirstFragment:

public class FirstFragment extends Fragment { 

ImageView img_small; 
LinearLayout layout_ofc_cities; 
LinearLayout layout; 

public FirstFragment() { 
    // Required empty public constructor 
} 

@Override 
public void onCreate(@Nullable Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
} 

@Override 
public View onCreateView(LayoutInflater inflater, ViewGroup container, 
         Bundle savedInstanceState) { 
    View view = inflater.inflate(R.layout.fragment_first, container, false); 

    img_small = (ImageView) view.findViewById(R.id.img_small); 
    layout_ofc_cities = (LinearLayout) view.findViewById(R.id.layout_ofc_cities); 
    layout = (LinearLayout) view.findViewById(R.id.layout); 

    layout.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 

      if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { 

       setSharedElementReturnTransition(TransitionInflater.from(getActivity()).inflateTransition(R.transition.change_image_trans)); 
       setExitTransition(TransitionInflater.from(getActivity()).inflateTransition(android.R.transition.fade)); 

       SecondFragment secondFragment = new SecondFragment(); 
       secondFragment.setSharedElementEnterTransition(TransitionInflater.from(getActivity()).inflateTransition(R.transition.change_image_trans)); 
       secondFragment.setEnterTransition(TransitionInflater.from(getActivity()).inflateTransition(android.R.transition.fade)); 

       FragmentTransaction ft = getFragmentManager().beginTransaction() 
         .replace(R.id.container, secondFragment) 
         .addToBackStack(null) 
         .addSharedElement(layout_ofc_cities, "transitionTxt") 
         .addSharedElement(img_small, "transitionImg"); 
       ft.commit(); 
      } 

     } 
    }); 

    return view; 
    } 
} 

und das ist SecondFragment:

public class SecondFragment extends Fragment { 

public SecondFragment() { 

} 

@Override 
public View onCreateView(LayoutInflater inflater, ViewGroup container, 
         Bundle savedInstanceState) { 
    View view = inflater.inflate(R.layout.fragment_second, container, false); 

    return view; 
    } 

} 

Und es funktioniert! aber wenn ich implementiert eine RecyclerView in FirstFragment SharedElementTransition verwenden für eine LinearLayout und eine ImageView von RecyclerView zu einem LinearLayout und ein ImageView in SecondFragment es funktioniert nicht.

Ich möchte einen Beispielcode mit zwei Fragmenten, die erste RecyclerView enthält, mit Animationen zwischen ihren gemeinsamen Elementen. Kann mir jemand helfen?

Antwort