IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Composants graphiques Android Discussion :

Optimisation des Layouts


Sujet :

Composants graphiques Android

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Ouvrier
    Inscrit en
    Juillet 2015
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Ouvrier

    Informations forums :
    Inscription : Juillet 2015
    Messages : 12
    Points : 7
    Points
    7
    Par défaut Optimisation des Layouts
    Bonjour. Sur une application, j'ai une liste affichée à l'aide d'un recyclerView. J'affiche pas mal d'infos pour chaque row ce qui fait que mon layout pour chaque row est assez chargé. J'ai utilisé le LinearLayout car j'suis à l'aise avec et j'arrive à placer les éléments comme je le veux. La liste pour le moment ne dépassera pas 10 elements et donc j'ai une question :



    Pour un layout de ce genre, ce serait mieux d'utiliser les relativeLayout plutot que le linearLayout ? J'ai du mal à voir comment j'pourrais m'en sortir avec un relative layout pour positionner les éléments comme je le souhaite. Mais surtout est-ce que ça vaut le coup de changer en fait ? Voici le schéma :

    Nom : optimisation.png
Affichages : 138
Taille : 9,7 Ko

    Merci

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2012
    Messages
    475
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2012
    Messages : 475
    Points : 586
    Points
    586
    Par défaut
    Je suis en train de faire une inspection de mon code sur Android Studio, et je suis tombé là dessus :
    A LinearLayout which contains an ImageView and a TextView can be more efficiently handled as a compound drawable (a single TextView, using the drawableTop, drawableLeft, drawableRight and/or drawableBottom attributes to draw one or more images adjacent to the text). If the two widgets are offset from each other with margins, this can be replaced with a drawablePadding attribute.
    Pour faire simple, tu dois pouvoir réduire certains linearlayout contenant 1 texte + 1 image à un simple textview.

    Sinon, je ne crois pas qu'il y ait de différence niveau mémoire entre Relative et Linear. Et j'ai souvent eu pleins de soucis pour aligner correctement les éléments avec un relativelayout.

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Ouvrier
    Inscrit en
    Juillet 2015
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Ouvrier

    Informations forums :
    Inscription : Juillet 2015
    Messages : 12
    Points : 7
    Points
    7
    Par défaut
    Pas mal le truc du drawablePadding. J'vais regarder pour la mise en place, mais y'a rien de compliqué a première vue. A tester ! Merci en tout cas

  4. #4
    Membre averti
    Homme Profil pro
    Ingénieur Informatique et Développeur Android
    Inscrit en
    Janvier 2010
    Messages
    384
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Ingénieur Informatique et Développeur Android

    Informations forums :
    Inscription : Janvier 2010
    Messages : 384
    Points : 321
    Points
    321
    Par défaut
    Juste un point de vue concernant la comparaison entre LinearLayout et RelativeLayout, je trouve que RL est plus simple et nous offre plus des propositions à positionner des éléments par rapport aux autres (à gauche, à droit, au dessous de, au dessus de , center parent...).

  5. #5
    Futur Membre du Club
    Homme Profil pro
    Ouvrier
    Inscrit en
    Juillet 2015
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Ouvrier

    Informations forums :
    Inscription : Juillet 2015
    Messages : 12
    Points : 7
    Points
    7
    Par défaut
    Sur les layouts pas trop complexe en effet. Après perso des qu'il commence à y avoir pas mal d'élements, je trouve ça un peu bordélique. Après je vais essayer d'optimiser ça pour avoir moins de profondeurs. Même si la ça marche, je vais essayer d'optimiser tout ça.

  6. #6
    Membre actif Avatar de Altak
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2014
    Messages
    170
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Octobre 2014
    Messages : 170
    Points : 245
    Points
    245
    Par défaut
    Bonjour,

    Je voulais juste préciser qu'il peut être intéressant de découper ton layout en plusieurs morceau si tu as vraiment énormément d’éléments dedans.
    Je ne sais pas de quoi est constitué ton layout principale mais pour les layouts qui sont dedans, tu peux créer des customView (qui hérite de LineraLayout ou de RelativeLayout) et les mettre dans ton xml.
    Ca permet d’alléger le fichier xml principale et de découper de façon indépendante tes vues (tu pourras réutiliser tes customView n'importe ou dans ton application).

    Si ca t’intéresse, je pourrais t'expliquer comment faire, c'est assez simple et rapide a mettre en place

    GL HF!

  7. #7
    Futur Membre du Club
    Homme Profil pro
    Ouvrier
    Inscrit en
    Juillet 2015
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Ouvrier

    Informations forums :
    Inscription : Juillet 2015
    Messages : 12
    Points : 7
    Points
    7
    Par défaut
    Salut . J'ai pas vraiment besoin de réutilisation mais l'idée des custom views est intéressante. J'avais vu passer ça et j'y avais pas prêté attention. Je m'en suis finalement sorti avec des Relative layout ou j'suis passé a 1 parent et 5 enfants pour l'ensemble ce qui est déjà pas mal.

    Mais je vais aller regarder l'idée des CustomView ! J'étais tombé sur ça lorsque je cherchais à créer des marges programmatiquement et du coup, sans me l'expliquer, si t'as juste des exemples pour voir dans quel cas c'est utilisé, j'suis preneur oui .

    Merci en tout cas .

    Autrement voici le layout sur lequel je suis finalement arrivé :

    Nom : optimisation1.png
Affichages : 105
Taille : 13,0 Ko


    Par contre j'ai le Linear Layout qui sert un peu à rien en soit .

  8. #8
    Membre actif Avatar de Altak
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2014
    Messages
    170
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Octobre 2014
    Messages : 170
    Points : 245
    Points
    245
    Par défaut
    Re,

    Pour ma part, j'utilise les customView pour pouvoir réutiliser mes éléments sur plusieurs projets. Ca me permet d'être certain que ce petit morceau de code soit totalement indépendant du reste puisqu'il doit pouvoir être appelé depuis le xml.
    J'en utilise par exemple pour mes timeline (lorsque tu as un process en plusieurs étape et un fil d’Ariane qui résume l'entrée utilisateur par exemple).
    J'ai donc créé une class timeline qui hérite d'un Linéarlayout et auquel je passe tout mes paramètre nécessaire (tu peux faire des custom attribut aussi si nécessaire).
    Cette classe, je l'affiche à chaque étape du process et j'affiche les infos nécessaire dans la classe Java de la même manière qu'avec n'importe qu'elle autres vues
    Ca t’évite de faire des fragments pour un truc simple et c'est beaucoup plus facile a utiliser dans les fichier java

    Si tu t'y met un de ces 4 matins et que tu as des questions, n’hésite pas

    GLHF

  9. #9
    Futur Membre du Club
    Homme Profil pro
    Ouvrier
    Inscrit en
    Juillet 2015
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Ouvrier

    Informations forums :
    Inscription : Juillet 2015
    Messages : 12
    Points : 7
    Points
    7
    Par défaut
    Ok merci ! C'est vraiment sympa de ta part en tout cas ! J'hésiterais pas .

Discussions similaires

  1. [Disques durs] Optimisation des partitions
    Par DarkOcean dans le forum Composants
    Réponses: 18
    Dernier message: 10/02/2005, 13h54
  2. Optimisation des tables
    Par le-roy_a dans le forum Décisions SGBD
    Réponses: 5
    Dernier message: 24/01/2005, 10h04
  3. optimisation des requêtes
    Par yech dans le forum PostgreSQL
    Réponses: 1
    Dernier message: 21/09/2004, 19h03
  4. [Compilateur] Optimisation des conditions
    Par Pedro dans le forum Langage
    Réponses: 2
    Dernier message: 16/06/2004, 13h49
  5. Optimisation des requetes
    Par bifidus dans le forum MS SQL Server
    Réponses: 5
    Dernier message: 06/10/2003, 11h29

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo