2012-03-21 67 views
4

我在Sencha Touch 2应用程序中有Ext.field.TextArea。我只是希望它根据其包含的文本进行高度扩展。我怎样才能做到这一点?它看起来像这样一个基本/简单的功能,但我无法在API中找到它。如何将Ext.field.TextArea大小设置为没有滚动条的文本的大小?

我正在使用此组件来显示一些静态多行文本 - 是否有另一个组件可能更适合此任务?

任何帮助表示赞赏,谢谢。

回答

0

对非表单项使用表单元素不是最佳解决方案。

我会建议您仅仅使用轻量级的Ext.container.Container组件,或者如果您需要围绕它的发烧友镀铬物,可能是面板或窗口。

+0

好吧,那么我会把这个Container放在里面?它看起来像'Label's只是横向延伸永远。我应该为文本使用什么组件?我认为我可以避免编写原始HTML这样一个简单的任务... – 2012-03-21 15:31:45

1

我解决这样说:

Ext.define('ParentsApp.component.TextAreaAutomaticRow', { 
extend: 'Ext.form.Select', 
xtype: 'textareaautomaticrow', 
config: { 
    maxRows: 2, 
    autoHeight: true, 
    listeners: { 
     keyup: function (field, event) { 
      if (field.autoHeight) {     
       var numOfRows = field.getValue().split("\n").length; 
       if(numOfRows >= 2) { 
        numOfRows = numOfRows++; 
        field.setMaxRows(numOfRows); 
       } else if (numOfRows < field.getMaxRows()) { 
        field.setMaxRows(numOfRows + 1); 
       }     
      } 
     } 
    }  
}, 

});

+0

这帮助我自动扩展Sencha Touch 1中的textareafield,只需要将field.getMaxRows()/ field.setMaxRows()更改为字段。 fieldEl.dom.rows。 工作就像一个魅力! – Nikkelmann 2013-11-12 10:15:26

相关问题