ExtJS 组件从 afterrender 和 focus 事件中获取不同的位置?

ExtJS component get the different position from afterrender and focus event?

嗨,我试图获取组件位置,但我发现 getXY() 在不同的事件中会显示不同的位置。

喜欢这个样本,fiddle

init: function() {
    var me = this;

    me.control({
        'textfield[itemId=field]': {
            change: me.changeField,
            focus: me.focusField,
            afterrender: me.afterRenderField
        }

    });

},

focusField: function(field, event) {
    console.log(field.getXY());
},

changeField: function(field, newValue, oldValue) {
    console.log(field.getXY());
},

afterRenderField: function(field) {
    console.log(field.getXY());
}

我认为正确的位置是关注和改变事件。为什么后渲染不同?

我想在组件渲染后做一些事情,所以我需要获得正确的位置。

您可以使用活动 boxready

差异的原因是对象被渲染时它还没有布局。