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

Flex Discussion :

Canvas - Taille ajustable


Sujet :

Flex

  1. #1
    Membre éprouvé Avatar de alain31tl
    Homme Profil pro
    Inscrit en
    Novembre 2005
    Messages
    935
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Novembre 2005
    Messages : 935
    Points : 1 019
    Points
    1 019
    Par défaut Canvas - Taille ajustable
    Bonjour

    Existe-t'il une propriété permettant d'ajuster automatiquement sa hauteur en fonction d'un contenu variable (texte).
    Je précise que ce canvas (composant personnalisé) est affiché via un itemRenderer (List).

    Ou éventuellement, un autre container susceptible de disposer d'une telle proprièté.

    Merci à vous pour vos éventuels avis.
    Cdt
    Ce n'est pas parce que les choses sont difficiles qu'on n'ose pas les entreprendre.
    C'est parce qu'on n'ose pas les entreprendre qu'elles sont difficiles.

  2. #2
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    793
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Avril 2009
    Messages : 793
    Points : 894
    Points
    894
    Par défaut
    Ce n'est pas ce qui se passe si tu ne définis pas de hauteur ??
    jyl@xx
    "Simplicity does not precede complexity, but follows it." Alan Perlis

  3. #3
    Membre actif Avatar de miya
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    469
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Janvier 2006
    Messages : 469
    Points : 240
    Points
    240
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    resizeToContent="true"

  4. #4
    Membre éprouvé Avatar de alain31tl
    Homme Profil pro
    Inscrit en
    Novembre 2005
    Messages
    935
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Novembre 2005
    Messages : 935
    Points : 1 019
    Points
    1 019
    Par défaut
    Citation Envoyé par jylaxx Voir le message
    Ce n'est pas ce qui se passe si tu ne définis pas de hauteur ??
    Non, pLus de contenu du tout.


    Citation Envoyé par miya Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    resizeToContent="true"
    Ne fonctionne pas pour un canvas.

    Si vous avez mieux, merci.
    Ce n'est pas parce que les choses sont difficiles qu'on n'ose pas les entreprendre.
    C'est parce qu'on n'ose pas les entreprendre qu'elles sont difficiles.

  5. #5
    Membre actif Avatar de miya
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    469
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Janvier 2006
    Messages : 469
    Points : 240
    Points
    240
    Par défaut

    Si vous avez mieux, merci.
    je ne pense pas qu'il y ait mieux, tente avec un autre container

  6. #6
    Membre éprouvé Avatar de alain31tl
    Homme Profil pro
    Inscrit en
    Novembre 2005
    Messages
    935
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Novembre 2005
    Messages : 935
    Points : 1 019
    Points
    1 019
    Par défaut
    Citation Envoyé par miya Voir le message
    je ne pense pas qu'il y ait mieux, tente avec un autre container

    Je trouve surtout dommage que l'on réponde sans conviction, et un peu à la volée.
    Si je pose la question, c'est que j'ai essayé de nombreuses manipulations et options.

    Je redonne cette précision :

    "....Je précise que ce canvas (composant personnalisé) est affiché via un itemRenderer (List).....".

    Peut-être la base de mon souci, vu que les canvas sont affichés en "boucle".
    Ce n'est pas parce que les choses sont difficiles qu'on n'ose pas les entreprendre.
    C'est parce qu'on n'ose pas les entreprendre qu'elles sont difficiles.

  7. #7
    Membre éprouvé Avatar de alain31tl
    Homme Profil pro
    Inscrit en
    Novembre 2005
    Messages
    935
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Novembre 2005
    Messages : 935
    Points : 1 019
    Points
    1 019
    Par défaut
    Complément et pour info.
    Celà peut éventuellement servir à d'autres pour ce cas de figure :

    Il y a un exemple ici :

    http://www.flashcomguru.com/index.cf...List-Component

    Cette solution est interessante, cependant quand on observe la source, il s'avére qu'il faut spécifier tout de même un height.

    <mx:Resize id="expand" target="{this}" heightTo="80" duration="150"/>
    <mx:Resize id="contract" target="{this}" heightTo="{initheight}" duration="150"/>
    Ce qui ne résoud pas le probléme quand on ne connait pas le contenu d'avance.
    Avec un LongText, c'est scroolbar assuré.
    Ce n'est pas parce que les choses sont difficiles qu'on n'ose pas les entreprendre.
    C'est parce qu'on n'ose pas les entreprendre qu'elles sont difficiles.

  8. #8
    Membre averti Avatar de samy2525
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    259
    Détails du profil
    Informations personnelles :
    Localisation : France, Hauts de Seine (Île de France)

    Informations forums :
    Inscription : Janvier 2008
    Messages : 259
    Points : 310
    Points
    310
    Par défaut hauteur
    Bonjour à tous, si je comprends bien tu as un canvas comme itemRendere dans une List, donc le contenue d'une ligne de la liste est contenue dans un Canvas,

    si j'etais toi je rajouterai un event de creation Complete sur le canvas du style
    et une proprité de la class dans la kelle tu sauvgarde la hauteur de ton contenue
    private hauteur : Number

    si ton itemRenderer etends un Canvas je ferai

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    addEventListenr(FlexEvent.CreationComplete, creationComplete)
     
    private function creationcomplete(obj : Object):void{
     
        //a ce moment la tous les element de ton canevas sont créer et du coup tu peut acceder a leur propriéte tu as k'a setter la hauteur de la canvas ici 
     
     
    }
    voila j'espere ke ca va t'aider
    http://www.m-ataf.com (En cours de construction)

  9. #9
    Membre éprouvé Avatar de alain31tl
    Homme Profil pro
    Inscrit en
    Novembre 2005
    Messages
    935
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Novembre 2005
    Messages : 935
    Points : 1 019
    Points
    1 019
    Par défaut
    Citation Envoyé par samy2525 Voir le message
    .....et une proprité de la class dans la kelle tu sauvgarde la hauteur de ton contenue
    private hauteur : Number.......
    }
    Samy

    Je ne connais pas le contenu à l'avance, puisque cette variable (texte) est obtenue depuis une base de données.
    Les longueurs de texte sont donc différentes d'un canvas à l'autre.
    Ce n'est pas parce que les choses sont difficiles qu'on n'ose pas les entreprendre.
    C'est parce qu'on n'ose pas les entreprendre qu'elles sont difficiles.

  10. #10
    Membre averti Avatar de samy2525
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    259
    Détails du profil
    Informations personnelles :
    Localisation : France, Hauts de Seine (Île de France)

    Informations forums :
    Inscription : Janvier 2008
    Messages : 259
    Points : 310
    Points
    310
    Par défaut
    oui, c'est ce que je dis, en faite ton composant Text est bien le child de la Canvas, en faite quand Felx finit de creer le composant Canvas, il a deja cree le composant Text du coup tu as forcement sa taille et tous ce que tu veux, sauf si j'ai pas bien compris ton ItemRenderer
    http://www.m-ataf.com (En cours de construction)

  11. #11
    Membre éprouvé Avatar de alain31tl
    Homme Profil pro
    Inscrit en
    Novembre 2005
    Messages
    935
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Novembre 2005
    Messages : 935
    Points : 1 019
    Points
    1 019
    Par défaut
    Non Samy, suffisement exploré le sujet depuis quelques jours.
    Il semble de plus en plus évident qu'il n'est pas possible d'obtenir des itemrenderer (Affichage List) avec des height différents des uns et des autres.
    Si on regarde la solution proposée sur flashcomguru ( Lien dans un de mes postes précédents et ci-dessus), et bien quelque soit le contenu, la hauteur demeure figée.
    D'ailleurs et à défaut, c'est la solution que je vais retenir pour l'adapter à mon besoin.

    Faîtes des tests, et si vous trouvez, je paye le resto

    Et si c'est possible dans un certain sens, jetez un oeil ici :
    http://www.flex-tutorial.fr/2009/03/...tion/#more-398

    Résultat ? Catastrophique
    Et l'explication est claire.
    Ce n'est pas parce que les choses sont difficiles qu'on n'ose pas les entreprendre.
    C'est parce qu'on n'ose pas les entreprendre qu'elles sont difficiles.

  12. #12
    Membre éprouvé Avatar de alain31tl
    Homme Profil pro
    Inscrit en
    Novembre 2005
    Messages
    935
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Novembre 2005
    Messages : 935
    Points : 1 019
    Points
    1 019
    Par défaut
    Citation Envoyé par alain31tl Voir le message
    ....Il semble de plus en plus évident qu'il n'est pas possible d'obtenir des

    itemrenderer (Affichage List) avec des height différents des uns et des

    autres.....
    Finalement, Oui et Non.
    - Non nativement ou automatiquement.
    - Oui avec une variable improvisée.

    Si je reprends la solution de flascomguru, (height figé), et au demeurant un des rare à traiter ce sujet ambigu :

    http://www.flashcomguru.com/index.cf... /> Component

    <mx:Resize id="expand" target="{this}" heightTo="80

    " duration="150"/>
    Je peux lui attribuer par exemple une variable :

    <mx:Resize id="expand" target="{this}" heightTo="

    {data.taille}
    " duration="150"/>
    Cette variable est récupérée en xml depuis un script PHP.(httpService)
    Avec des tests préalables, on peut "sommairement" détermier les espaces respectifs utiles pour x caractéres + retour chariot éventuels.

    Exemple :
    $nb_caracteres=$mon_champ_mysql;
    strlen($nb_caracteres);
    //exemple:
    $taille=// petit mode de calcul pour le height en fonction de $nb_caracteres possibles pas lignes

    Solution encore plus aisée quand il s'agit d'images puisqu'on peut connaître les tailles d'origine en php et les renvoyer sous forme de variables en xml.

    Ok, pas trés rationnel ?...pas trouvé mieux.
    Mais celà a l'avantage d'être fonctionnel.


    Merci pour vos interventions.
    Ce n'est pas parce que les choses sont difficiles qu'on n'ose pas les entreprendre.
    C'est parce qu'on n'ose pas les entreprendre qu'elles sont difficiles.

  13. #13
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    793
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Avril 2009
    Messages : 793
    Points : 894
    Points
    894
    Par défaut
    Je n'ai pas essayé avec une List mais avec une DataGrid, mais j'imagine que le comportement doit être similaire. Si je donne la valeur true à la propriété variableRowHeight j'ai bien des hauteur de ligne variable en fonction du texte à afficher (sans utiliser d'ItemRenderer).
    Il existe par contre un autre problème (qui n'est pas celui dont tu parles) lorsque la hauteur de la ligne est supérieure à la hauteur du DataGrid.

    Donc :
    Est-ce que ton ItemRender est vraiment indispensable dans la mesure où tu dis afficher du texte ?
    S'il est possible d'obtenir ce comportement par défaut je pense que l'utilisation d'un itemRenderer doit également être possible...

    Dis moi dans quel resto tu invites et je verrai si je vais plus loin dans mes tests... ;-)
    jyl@xx
    "Simplicity does not precede complexity, but follows it." Alan Perlis

  14. #14
    Membre éprouvé Avatar de alain31tl
    Homme Profil pro
    Inscrit en
    Novembre 2005
    Messages
    935
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Novembre 2005
    Messages : 935
    Points : 1 019
    Points
    1 019
    Par défaut
    jylaxx

    Ok pour datagrid, mais tu n'as pas réalisé de tests avec List. (?)
    Dommage.
    Dans ma liste, variableRowHeight est bien à true.

    Si mon itemrenderer est indispensable ???
    Si je l'utilise, c'est simplement parce que j'ai des dizaines d'enregistrements variables à afficher depuis un composant personnalisé...et en boucle.
    Par conséquent, je n'ai pas d'autre choix.
    Tu as un à priori sur la méthode ?

    Pour le Resto, pas de souci et je tiens parole, mais montre moi ta méthode, et surtout reprends la file depuis le début pour bien en comprendre les aboutissants.
    Ce n'est pas parce que les choses sont difficiles qu'on n'ose pas les entreprendre.
    C'est parce qu'on n'ose pas les entreprendre qu'elles sont difficiles.

  15. #15
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    793
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Avril 2009
    Messages : 793
    Points : 894
    Points
    894
    Par défaut
    Ok pour datagrid, mais tu n'as pas réalisé de tests avec List. (?)
    Dommage.
    Je me suis mal exprimé. Je voulais dire que j'utilise dans les applications des DataGrid avec des hauteurs de ligne variables pour permettre l'affichage de texte variable et que cela fonctionne avec l'ItemRenderer par défaut.

    Depuis j'ai effectivement testé avec une List et j'ai le même résultat.

    Donc je suppose que si tu utilises un ItemRenderer perso c'est que tu affiches autre chose que texte. Est-ce que tu pourrais préciser le contenu de ton ItemRender ?
    jyl@xx
    "Simplicity does not precede complexity, but follows it." Alan Perlis

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [AC-2010] Différence entre Taille ajustée et Ajuster à l'écran
    Par vandrie dans le forum IHM
    Réponses: 2
    Dernier message: 09/06/2014, 22h57
  2. Canva taille relative
    Par zulad dans le forum Balisage (X)HTML et validation W3C
    Réponses: 1
    Dernier message: 17/04/2012, 10h51
  3. Canvas ajustable en taille
    Par ahmedige dans le forum Débuter
    Réponses: 1
    Dernier message: 09/08/2010, 05h22
  4. [A-03] Taille ajustée formulaire
    Par Alex_42 dans le forum IHM
    Réponses: 1
    Dernier message: 16/10/2008, 19h14
  5. [CSS]Résolution et taille ajustée ?
    Par elitost dans le forum Mise en page CSS
    Réponses: 6
    Dernier message: 05/05/2006, 17h02

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