CERCA
PER MODELLO
FullScreen Chatbox! :)

Utente del giorno: gianpassa con ben 1 Thanks ricevuti nelle ultime 24 ore
Utente della settimana: carotix con ben 11 Thanks ricevuti negli ultimi sette giorni
Utente del mese: megthebest con ben 26 Thanks ricevuti nell'ultimo mese

Visualizzazione dei risultati da 1 a 1 su 1
Discussione:

[SNIPPET] ObservableFragment

Se questa discussione ti è stata utile, ti preghiamo di lasciare un messaggio di feedback in modo che possa essere preziosa in futuro anche per altri utenti come te!
  1. #1
    Androidiani Power User L'avatar di cesco


    Registrato dal
    Sep 2010
    Località
    Bg
    Messaggi
    5,018
    Smartphone
    TYTN2,desire,desireHD, oneX

    Ringraziamenti
    54
    Ringraziato 1,346 volte in 724 Posts
    Predefinito

    [SNIPPET] ObservableFragment

    Ho creato questa classe che estende android.app.Fragment per avere dei callback quando la transizione da un fragment all'altro è completa.
    Perchè funzioni è necessario impostare un'animazione custom per la transizione tra fragments

    https://gist.github.com/cesco89/9ddb738eef1cead8fea7
    import android.animation.Animator;
    import android.animation.AnimatorInflater;
    import android.app.Fragment;
    /**
    * Created by francesco on 14/10/14.
    */
    public class ObservableFragment extends Fragment {
    private TransitionListener mListener;
    @Override
    public Animator onCreateAnimator(int transit, boolean enter, int nextAnim) {
    if(nextAnim != 0x0) {
    Animator animator = AnimatorInflater.loadAnimator(getActivity(), nextAnim);
    if (mListener != null) {
    animator.addListener(new Animator.AnimatorListener() {
    @Override
    public void onAnimationStart(Animator animation) {
    mListener.onTransitionStarted();
    }
    @Override
    public void onAnimationEnd(Animator animation) {
    mListener.onTransitionEnded();
    }
    @Override
    public void onAnimationCancel(Animator animation) {
    mListener.onTransitionCancel();
    }
    @Override
    public void onAnimationRepeat(Animator animation) {
    mListener.onTransitionRepeated();
    }
    });
    }
    return animator;
    }
    return null;
    }
    public void setTransitionListener(TransitionListener listener) {
    this.mListener = listener;
    }
    public interface TransitionListener {
    public void onTransitionStarted();
    public void onTransitionCancel();
    public void onTransitionEnded();
    public void onTransitionRepeated();
    }
    }
    ObservableFragment f = new MyFragment();
    f.setTransitionListener(new ObservableFragment.TransitionListener() {
    @Override
    public void onTransitionStarted() {
    };
    @Override
    public void onTransitionCancel(){
    };
    @Override
    public void onTransitionEnded(){
    };
    @Override
    public void onTransitionRepeated(){
    };
    });
    view raw sample.java hosted with ❤ by GitHub
    Follow me on:
    <!-- Place this tag where you want the widget to render. -->
    <div class="g-person" data-width="180" data-href="//plus.google.com/113012341277613226011" data-theme="dark" data-rel="author"></div>

    <!-- Place this tag after the last widget tag. -->
    <script type="text/javascript">
    window.___gcfg = {lang: 'it'};

    (function() {
    var po = document.createElement('script'); po.type = 'text/javascript'; po.async = true;
    po.src = 'https://apis.google.com/js/plusone.js';
    var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(po, s);
    })();
    </script>
    <br>
    <a class="twitter-timeline" href="https://twitter.com/xcesco89" data-widget-id="398762031488040960">Tweets di @xcesco89</a>
    <script>!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0],p=/^http:/.test(d.location)?'http':'https';if(!d.getElementB yId(id)){js=d.createElement(s);js.id=id;js.src=p+" ://platform.twitter.com/widgets.js";fjs.parentNode.insertBefore(js,fjs);}} (document,"script","twitter-wjs");</script>
    Androidiani app
    Estensione Androidiani per Google Chrome

  2. Il seguente Utente ha ringraziato cesco per il post:

    Crotan (29-10-14)

  3.  

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire risposte
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Torna su
Privacy Policy