Pour un composant TextArea Flex multi-lignes, vous souhaitez pouvoir continuer à saisir du texte et faire redimensionner automatiquement TextArea dans la direction verticale afin que tout le texte saisi s'affiche en même temps. Cependant, TextArea veut pousser tous les composants vers le bas dans le flux de mise en page. Au lieu de cela, vous voulez que TextArea s'étende au-dessus d'eux. Une fois l'entrée de texte terminée, TextArea devrait rétrécir et se redessiner à ses limites normales.Comportement de redimensionnement automatique Flex TextArea - est-ce possible?
2
A
Répondre
0
Si le conteneur dans lequel est TextArea utilise un positionnement «absolu» (comme un canevas), cela fonctionnera. Mesurez simplement textHeight sur TextArea et quand il atteint une certaine plage dans la hauteur de TextArea, augmentez la hauteur. Cependant, vous devrez toujours corriger l'ordre z, car TextArea voudra peut-être étendre derrière les autres composants.
0
Sous-classe la classe TextArea et remplacez la méthode measure() pour définir les dimensions mesurées à la taille du texte de la zone de texte. Vous pouvez également ajouter des écouteurs d'événement pour invalider la taille et la taille parente de TextArea sous-classées lors de la saisie de texte ou d'une mise en page du parent.
C'est une classe simple que j'ai créé:
public class AutoAdjustTextArea extends TextArea{
/////////////////////////////////////////////////
//Constructor Method/////////////////////////////
/////////////////////////////////////////////////
public function AutoAdjustTextArea():void{
super.addEventListener(FlexEvent.ADD, this.invalidateSizeOnEvent, false, 0, true);
super.addEventListener(Event.CHANGE, this.invalidateSizeOnEvent, false, 0, true);
super.addEventListener(TextEvent.TEXT_INPUT, this.invalidateSizeOnEvent, false, 0, true);
super.addEventListener(ResizeEvent.RESIZE, this.invalidateSizeOnEvent, false, 0, true);
}
/////////////////////////////////////////////////
//Set Methods////////////////////////////////////
/////////////////////////////////////////////////
override public function set text(value:String):void{
super.text = value;
this.invalidateSizeOnEvent();
}
/////////////////////////////////////////////////
//Measure Methods////////////////////////////////
/////////////////////////////////////////////////
override protected function measure():void{
//Calls the super method
super.measure();
//Calls to ensure this is validated
super.validateNow();
super.textField.validateNow();
//Grabs the min and max height values
var minHeight:Number = super.minHeight;
var maxHeight:Number = super.maxHeight;
//Grabs the height of the text
var textHeight:Number = super.textField.textHeight + 4;//+4 for the two pixel gutter on the top and bottom
//Calculates the preferredHeight
var preferredHeight:Number = textHeight;
if(isNaN(minHeight) == false && preferredHeight < minHeight)
preferredHeight = minHeight;
else if(isNaN(maxHeight) == false && preferredHeight > maxHeight)
preferredHeight = maxHeight;
//Sets the measured dimensions
super.measuredHeight = preferredHeight;
}
/////////////////////////////////////////////////
//Event Listener Methods/////////////////////////
/////////////////////////////////////////////////
private function invalidateSizeOnEvent(event:Event = null):void{
super.invalidateProperties();
super.invalidateSize();
super.invalidateParentSizeAndDisplayList();
}
Questions connexes
- 1. Comportement de redimensionnement JSplitPane
- 2. événement de redimensionnement en flex
- 3. CSS, redimensionnement automatique div?
- 4. Comportement relloc lors du redimensionnement
- 5. Masquage de la poignée de redimensionnement textarea dans Safari
- 6. Redimensionnement automatique des vues Monotouch dans l'iphone
- 7. Comportement impair pour rowSpan dans Flex
- 8. WPF zone de texte et bordures - comportement Redimensionnement curieux
- 9. Modification du comportement de redimensionnement dans les dispositions Qt
- 10. Strange Flex double clic comportement
- 11. comment faire saut de ligne de texte dans textarea flex
- 12. Flex: Comment savoir si TextArea a le curseur clignotant
- 13. Flex: redimensionnement de la fenêtre de restauration d'une fenêtre agrandie
- 14. JTextArea avec un comportement étrange lors du redimensionnement du JFrame
- 15. Redimensionnement automatique du widget dojo dijit.Grid lors du redimensionnement du conteneur parent
- 16. Redimensionnement et redimensionnement de l'image
- 17. Comportement fileté pour l'extension Firefox possible?
- 18. Flex Builder, débogage - Sortie de la consignation de consignation automatique
- 19. Comportement mémoire de/Possible fuite de mémoire dans UITableView
- 20. Redimensionnement automatique de l'axe Y dans l'API Google Visualization/Ligne de temps annotée
- 21. Sql Developer 2.1 fenêtre de résultats de la requête: désactiver le redimensionnement automatique?
- 22. Redimensionnement automatique de l'affichage X11 lors de la connexion d'un moniteur externe
- 23. mot multiple Predictive/autocomplete textarea?
- 24. Flex enfant toile insise un canevas et la question de redimensionnement
- 25. Comment rendre textarea modifiable?
- 26. Redimensionnement de UITableView sur RootController
- 27. déplacer l'image fléchée infornt de la ligne dans textarea avec Flex
- 28. Redimensionnement proportionnel de l'image
- 29. Redimensionnement de l'image Jquery
- 30. redimensionnement du rendu d'élément lors du redimensionnement de horizontalList