SwipeRefreshLayout: glisser l'animation de progression
Je suis assez nouveau pour android et j'explore l'exemple de code sur le site web de google. Le code que j'en suis à l'heure actuelle, le SwipeRefreshLayout: http://developer.android.com/samples/SwipeRefreshLayoutBasic/index.html
Dans le code, nous voyons la SwipeRefreshLayout être exécuté pour une listview, donc, en d'autres termes, si vous faites glisser vers le bas de la vue de liste, la méthode est déclenchée et la liste s'actualise lui-même.
<android.support.v4.widget.SwipeRefreshLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/swiperefresh"
android:layout_width="match_parent"
android:layout_height="match_parent">
<ListView
android:id="@android:id/list"
android:layout_width="match_parent"
android:layout_height="match_parent" />
</android.support.v4.widget.SwipeRefreshLayout>
Ce qui est source de confusion, moi, c'est qu'il n'existe aucune disposition dans le code de l'animation de progression de la barre qui s'affiche en haut de la liste lorsque vous le faites glisser vers le bas. Pensez-vous que le SwipeRefreshLayout génère automatiquement une animation de progression de la barre lorsque vous le faites glisser vers le bas, sans demander à l'utilisateur de spécifier n'importe quel modèle en xml?
Par exemple, si l'on veut mettre un rembourrage aux deux extrémités de l'animation de progression de la barre, de sorte que l'animation ne pas toucher les extrémités de l'écran lorsque vous actualisez, comment pourrait-on le faire?
La https://developer.android.com/reference/android/support/v4/widget/SwipeRefreshLayout.html ne veut pas vraiment dire quoi que ce soit.
source d'informationauteur Simon
Vous devez vous connecter pour publier un commentaire.
Vous ne peut pas changer l'animation.
Dans
SwipeRefreshLayout
vous ne pouvez pas personnaliser beaucoup; je crois que c'est une tentative de Google pour obtenir des développeurs en tenir à des modèles communs. Ce que vous pouvez le style sont les quatre couleurs de l'animation, spécifié avecsetColorScheme()
.SwipeRefreshLayout
prend soin de montrer son animation à son sommet pour vous. Ce peut être lorsquecanChildScrollUp()
renvoie la valeur false et l'utilisateur "tire vers le bas", ou quand vous définissezsetRefreshing(true)
. Désactiver l'animation avecsetRefreshing(false)
. Mettez votre logique dans la méthodeonRefreshing()
de l'auditeur. RemplacercanChildScrollUp()
si vous mettez quelque chose qui n'est pas unListView
dans votreSwipeRefreshLayout
. Vous devriez être bon d'aller à partir d'ici.bien que vous ne pouvez pas le changer, vous pouvez toujours cacher et afficher votre propre une fois déclenché,: -)
Notes:
dans eclipse, vous devez ajouter @SuppressLint("ResourceAsColor") pour la compilation.
vous avez toujours besoin d'appeler setRefreshing(faux) à un point dans le temps d'autre onRefresh ne pas déclencher de nouveau.