android - tutorial - Come regolare la distanza di scorrimento in SwipeRefreshLayout?




swipe refresh layout android tutorial (2)

Ho implementato SwipeRefreshLayout nella mia app. Ho bisogno di cambiare l'altezza che deve essere scorsa verso il basso per chiamare il metodo onRefresh (). Quale metodo dovrei usare per aggiungere un'altezza personalizzata?

Implementazione di SwipeRefreshLayout

private SwipeRefreshLayout swipeLayout;

In oncreate

swipeLayout   = (SwipeRefreshLayout)view.findViewById(R.id.swipe_container);
swipeLayout.setOnRefreshListener(this);
        swipeLayout.setColorScheme(android.R.color.holo_blue_dark, 
                android.R.color.holo_green_dark, 
                android.R.color.holo_purple, 
                android.R.color.holo_orange_dark);   
        swipeLayout.setSoundEffectsEnabled(true);

Implementazione di un AsyncTask nel metodo onrefresh

   @Override
public void onRefresh() 
{
    // Asynctask to perform some task  

}

Attualmente non esiste un metodo pubblico, o anche un metodo pubblico, che può essere usato per regolare la distanza di innesco. Ma puoi copiare le tre classi dalla libreria di supporto nel tuo progetto, quindi modificare SwipeRefreshLayout a tuo piacimento.

Ecco le classi che dovrai copiare:

La distanza tigger viene calcolata utilizzando le costanti:

 private static final float MAX_SWIPE_DISTANCE_FACTOR = .6f;
 private static final int REFRESH_TRIGGER_DISTANCE = 120;

Nella modifica del layout <android.support.v4.widget.SwipeRefreshLayout.../> a <your_path_to_SwipeRefreshLayout.../> e assicurati di modificare le importazioni, se necessario.


La reversione 21 della libreria di supporto v4 ha fornito un'API per impostare la distanza.

public void setDistanceToTriggerSync (int distance)

Controlla il documento here .

Un'altra cosa, il rev. 21 ha cambiato il comportamento della barra di avanzamento, ora è un'immagine circolare. Non ho idea di come tornare alla vecchia maniera.





swiperefreshlayout