By Alvin Alexander. Last updated: June 24, 2016
Sencha Touch seems to have some problems with its textareafield
, especially with sizing and resizing the height in a form. The best solutions I’ve found so far are:
Note that the first link is based on the code in the second link.
You can learn a lot about Sencha Touch by reading the code in these examples. The third link is interesting in that it overrides Ext.form.TextArea:
Ext.override(Ext.form.TextArea, { adjustHeight: Ext.Function.createBuffered(function(textarea){ var textAreaEl = textarea.getComponent().input; if (textAreaEl) { textAreaEl.dom.style.height = 'auto'; textAreaEl.dom.style.height = textAreaEl.dom.scrollHeight + "px"; } },200,this), constructor: function() { this.callParent(arguments); this.on({ scope: this, keyup: function (textarea) { textarea.adjustHeight(textarea); }, change: function(textarea, newValue) { textarea.adjustHeight(textarea); } }); } });
I’ve found that you can set the textareafield height as follows, but it’s a non-cross-platform hack:
var noteField = { xtype: 'textareafield', name: 'note', label: 'Note', flex: 10, height: 360 // TODO this sets the height, but it's a kludge };