J'essaie d'implémenter le pull-to-refresh dans Android. Je sais qu'il y a SwipeRefreshLayout
mais avec toutes les applications Google nouvellement conçues comme Drive (voir ci-joint) pour Lollipop, j'ai remarqué qu'une nouvelle icône de rafraîchissement apparaît dans la vue lorsqu'elle est tirée. J'ai essayé de le chercher en ligne mais en vain. Android l'a-t-il publié dans le cadre de la conception matérielle? Des idées sur la façon de le mettre en œuvre?
EDIT: Certaines personnes ont souligné qu'il s'agit d'un doublon de Comment implémenter un Pull-to-refresh . Ce n'est pas la même question. Vous le verrez si vous lisez correctement la question.
C'est SwipeRefreshLayout
. La version 21 de la bibliothèque de support inclut le remplacement de l'ancien style.
Un guide détaillé peut être trouvé ici: http://antonioleiva.com/swiperefreshlayout/
De plus pour ListView, je recommande de lire sur canChildScrollUp () dans les commentaires;)
J'aime ce guide le meilleur et son vraiment facile à comprendre: https://www.bignerdranch.com/blog/implementing-swipe-to-refresh/
Ajoutez ce qui suit à gradle:
compile 'com.Android.support:support-v4:22.2.0'
Ajoutez le balayage pour actualiser votre mise en page - mettez en vue de liste ou en vue de recyclage au milieu du swiperefreshlayout:
<ListView
Android:id="@+id/activity_main_listview"
Android:layout_width="match_parent"
Android:layout_height="match_parent"
>
</ListView>
</Android.support.v4.widget.SwipeRefreshLayout>
Ajoutez votre code pour l'activité principale:
public class MainActivity extends Activity {
ListView mListView;
SwipeRefreshLayout mSwipeRefreshLayout;
Adapter mAdapter;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.acivity_main);
SwipeRefreshLayout mSwipeRefreshLayout = (SwipeRefreshLayout) findViewById(R.id.activity_main_swipe_refresh_layout);
mListView = findViewById(R.id.activity_main_list_view);
mListView.setAdapter(new ArrayAdapter<String>(){
String[] fakeTweets = getResources().getStringArray(R.array.fake_tweets);
mAdapter = new ArrayAdapter<String>(this, Android.R.layout.simple_list_item_1, fakeTweets)
listView.setAdapter(mAdapter);
});
}
}
N'oubliez pas d'appeler mSwipeRefreshLayout.setRefreshing (false); une fois votre rafraîchissement terminé.
salut Si vous ne souhaitez pas développer un tel type de mise en page, veuillez suivre cette URL, je l'ai utilisé, c'est génial.