Comment faire listviews de défilement lisse dans Android, ITWorld

Dans le développement du mobile aujourd'hui, l'expérience de l'interface utilisateur et l'utilisateur (UI / UX) sont roi. Il est important d'optimiser les performances de votre application pour fournir la meilleure expérience. Voici comment optimiser le ListView dans Android pour un défilement lisse.

Android est en retard sur iOS sur le front de l'interface utilisateur / UX en raison de la flexibilité accrue fournie par la plate-forme Android. Alors que iOS est plus restrictive sur ce qui est à la disposition du développeur, ces limitations forcent les éléments clés à optimiser pour la meilleure expérience utilisateur. Il est à vous en tant que développeur de coder correctement votre demande de performance dans beaucoup d'autres cas sous Android.

L'une des vues les plus utilisées dans les applications mobiles est la Liste, un ensemble de défilement vertical des éléments. Il est important que vous construisez la vue de la liste et il est des éléments de mise en page de manière appropriée afin d'obtenir des performances efficace et un défilement fluide.

création ListView

Lorsque vous construisez une disposition dans Android, vous construisez votre point de vue en XML, gonfler que la mise en page dans un objet View, puis effectuez une recherche d'identité sur la vue pour chaque élément - coulée au type widget approprié et le liant sur une variable.

Cette fonction sera exécutée pour obtenir toutes les cellules dans un listview pour dessiner la mise en page. Android utilise une technique de recyclage pour éviter de gonfler la même mise en page encore et encore (car il est toujours le même dans ce cas), mais l'ID look-ups pour chaque élément spécifique sont encore appelés à chaque fois.

Cela signifie que pour chaque cellule de votre point de vue de la liste, les cycles de CPU sont utilisés pour rechercher ces mêmes 4 éléments twitter chaque fois. vues plus complexes peuvent avoir des dizaines d'éléments. Le coût de ce consulter est le nombre de cellules * le nombre d'éléments qui peuvent se développer rapidement.

Le point de vue Pattern Holder

Avec le modèle de support de vue, une référence statique à chaque élément est créé et maintenu sur tout le ListView est en cours d'élaboration. Cela réduit le coût des look-ups élément 1 * le nombre d'éléments. une réduction massive des cycles CPU.

Remarque: Ok, Ok, il est pas tout à fait 1x car la vue est pas toujours recyclé mais vous obtenez l'image.

La mise en œuvre de ce modèle est assez simple. Pour commencer, faire une classe statique à l'intérieur de votre classe d'adaptateur pour tenir vos éléments de widget:

Ensuite, modifiez votre fonction getView.

Tout d'abord, vérifier et voir si la vue a été initialisé encore. Si elle n'a pas, à la fois initialiser la vue et le ViewHolder, effectuer les look-ups élément et définissez la balise sur la vue de tenir votre objet ViewHolder. Si elle a, obtenir l'objet ViewHolder existant dans la vue Tag (sauver le look-ups ID).

Ensuite, utilisez les références des éléments ViewHolder pour construire votre vue.

Une meilleure expérience

Cela peut être considéré comme une meilleure pratique pour le codage ListView. les applications Android ont une mauvaise réputation pour la conception, car les optimisations comme celui-ci sont sautées. La beauté d'Android est son ouverture et de flexibilité, vous pouvez faire quoi que ce soit près, mais avec ce pouvoir vient la responsabilité de prendre les mesures nécessaires pour rendre votre création efficace. Étant donné que le contrôle ListView est si commune, cette astuce peut aller un long chemin pour aider Android UI / UX.

Matthew Mombrea est un ingénieur logiciel, fondateur de Cypress North. et un passionné de technologie.

Les opinions exprimées dans ce blog sont celles de l'auteur et ne représentent pas nécessairement celles de ITWorld, sa société mère, filiales ou sociétés affiliées.

Articles Liés