Tutoriel sur la présentation du composant graphique « RecyclerView » sous Android,
Par Feanorin
Le 2015-06-21 13:36:10, par Feanorin, Expert éminent
Bonjour,
Vous trouverez ici Tutoriel sur la présentation du composant graphique « RecyclerView » sous Android.
N'hésitez pas à réagir.
Bonne lecture.
Merci.
Vous trouverez ici Tutoriel sur la présentation du composant graphique « RecyclerView » sous Android.
Ce tutoriel va s'intéresser à un nouveau composant qui est le RecyclerView permettant d'afficher une liste d'articles dans un ensemble de sous-vues.
Bonne lecture.
Merci.
-
grunkModérateurPour mémoire , l'affichage de liste d'articles sous Android se faisait via le composant ListView, GridView, etc. Ces composants avaient quelques ralentissements lorsque nous affichions leurs articles (items).
Du peu que j'ai testé le RecyclerView semble bien pratique (enfin une liste horizontale !) mais un peu plus complexe à mettre en place.
Par contre j'ai l'impression qu'on perd complètement la possibilité d'utiliser un CursorAdapter de base et qu'il faut passer par un tableau intermédiaire. Non ?
Le lien vers le dépot github ne fonctionne pasle 26/06/2015 à 10:49 -
FeanorinExpert éminentTu parles du cas où il sont implémenté sans ViewHolder ?
. Le recyclerView oblige ce pattern. Par contre j'ai l'impression qu'on perd complètement la possibilité d'utiliser un CursorAdapter de base et qu'il faut passer par un tableau intermédiaire. Non ?le 26/06/2015 à 22:29 -
MasterMbgModérateurBonjour Florian,
Merci pour ce tutoriel. Il est bien expliqué et je ne peux que.
Seulement, je n'arrive pas à m'en sortir alors que je reproduis exactement le même code (question de voir comment ça marche) que tu mis dans le tuto. A chaque exécution j'ai l'erreur suivant :
Code : 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
4007-20 05:37:19.430 19448-19448/com.example.mastermbg.recycleview E/AndroidRuntime﹕ FATAL EXCEPTION: main Process: com.example.chrislonembg.recycleview, PID: 19448 java.lang.NullPointerException at android.support.v7.widget.RecyclerView.onMeasure(RecyclerView.java:1694) at android.view.View.measure(View.java:16497) at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5125) at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1404) at android.widget.LinearLayout.measureVertical(LinearLayout.java:695) at android.widget.LinearLayout.onMeasure(LinearLayout.java:588) at android.view.View.measure(View.java:16497) at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5125) at android.widget.FrameLayout.onMeasure(FrameLayout.java:310) at android.view.View.measure(View.java:16497) at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5125) at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1404) at android.widget.LinearLayout.measureVertical(LinearLayout.java:695) at android.widget.LinearLayout.onMeasure(LinearLayout.java:588) at android.view.View.measure(View.java:16497) at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5125) at android.widget.FrameLayout.onMeasure(FrameLayout.java:310) at com.android.internal.policy.impl.PhoneWindow$DecorView.onMeasure(PhoneWindow.java:2291) at android.view.View.measure(View.java:16497) at android.view.ViewRootImpl.performMeasure(ViewRootImpl.java:1916) at android.view.ViewRootImpl.measureHierarchy(ViewRootImpl.java:1113) at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1295) at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1000) at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:5670) at android.view.Choreographer$CallbackRecord.run(Choreographer.java:761) at android.view.Choreographer.doCallbacks(Choreographer.java:574) at android.view.Choreographer.doFrame(Choreographer.java:544) at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:747) at android.os.Handler.handleCallback(Handler.java:733) at android.os.Handler.dispatchMessage(Handler.java:95) at android.os.Looper.loop(Looper.java:136) at android.app.ActivityThread.main(ActivityThread.java:5017) at java.lang.reflect.Method.invokeNative(Native Method) at java.lang.reflect.Method.invoke(Method.java:515) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:779) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:595) at dalvik.system.NativeStart.main(Native Method)
Code : 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26apply plugin: 'com.android.application' android { compileSdkVersion 22 buildToolsVersion "23.0.0 rc3" defaultConfig { applicationId "com.example.mastermbg.recycleview" minSdkVersion 9 targetSdkVersion 22 versionCode 1 versionName "1.0" } buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } } dependencies { compile fileTree(dir: 'libs', include: ['*.jar']) compile 'com.android.support:appcompat-v7:22.2.0' compile 'com.android.support:recyclerview-v7:21.0.0' }
Pourrais tu m'aider à corriger cette erreur please?
Merci d'avance.
Christian,le 20/07/2015 à 11:40 -
FeanorinExpert éminentSalut,
On dirait que ton problème provient d'un mauvais contexte passé à ton LinearLayoutManager si c'est celui là ?
T'es tu basé sur le projet github ou bien à tu reconstruis le projet à partir des exemples ?le 25/07/2015 à 18:17 -
MasterMbgModérateurJe ne me suis basé sur aucun projet, même pas construit le projet à partir des exemples.
Je suis entrain de suivre ton tutoriel, j'ai créé un nouveau projet à partir de zéro, j'ai ajouter dans le gradle la ligne "compile 'com.android.support:recyclerview-v7'".
Quand je synchronise le fichier gradle j'ai l'erreur suivante :
Code : 1
2Error:Failed to resolve: com.android.support:recyclerview-v7: <a href="install.m2.repo">Install Repository and sync project</a><br><a href="openFile">Open File</a>
Christian,le 25/07/2015 à 18:34 -
IsiTechMembre actifÇa me parait bizarre de ne pas préciser la version dans la ligne compile, essai la ligne suivante :
Code : compile 'com.android.support:recyclerview-v7:22.2.1'
J'ai crée une application utilisant les RecyclerView il y a quelques jours et aucun problème pour moi.le 25/07/2015 à 20:53 -
FeanorinExpert éminentÇa me parait bizarre de ne pas préciser la version dans la ligne compile
Il est préférable de mettre la version pour des problème de compatibilité entre lib.le 01/09/2015 à 13:04