package uk.co.imallan.tuchongdaily.ui.fragment; import android.annotation.SuppressLint; import android.os.Build; import android.os.Bundle; import android.os.Handler; import android.support.v4.app.Fragment; import android.view.View; import android.view.ViewTreeObserver; import uk.co.imallan.tuchongdaily.service.ServiceReceiver; /** * Created by allan on 15/2/25. */ public abstract class AbstractFragment extends Fragment { protected ServiceReceiver serviceReceiver; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); if (this.prepareServiceReceiver()) { serviceReceiver = new ServiceReceiver(new Handler()); } } protected abstract boolean prepareServiceReceiver(); public void scheduleStartPostponedTransition(final View sharedElement) { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { sharedElement.getViewTreeObserver().addOnPreDrawListener( new ViewTreeObserver.OnPreDrawListener() { @SuppressLint("NewApi") @Override public boolean onPreDraw() { sharedElement.getViewTreeObserver().removeOnPreDrawListener(this); getActivity().startPostponedEnterTransition(); return true; } }); } } }