PDA

View Full Version : [FIXED] Ext.plugin.PullRefresh - not displaying correctly



darrylm
7 Apr 2012, 5:11 AM
I have created a list class as follows:


Ext.define('myApp.view.myList', {
extend: 'Ext.dataview.List',
alias: 'widget.myList',
config: {
layout: {
type: 'fit'
},
store: 'myStore',
disableSelection: true,
grouped: true,
indexBar: true,
itemTpl: [
'<div>{name}</div>'
],
plugins: [
Ext.create('Ext.plugin.PullRefresh', {
refreshFn: function(plugin) {
console.log('in refresh');
}
})
]
}
});

I then reference it via xtype in a navigation view as follows:


Ext.define('myApp.view.myNav', {
extend: 'Ext.navigation.View',
alias: 'widget.myNav',
requires: [
'myApp.view.myList'
],
config: {
autoDestroy: false,
items: [
{
xtype: 'myList',
title: 'My List',
pinHeaders: true
}
]
}
});

The problem I have is that the pull to refresh plugin is not behaving correctly - which I think is due to the fact it is associated via an xtype link and directly specified in the navigation view. When I pull doen the list there is no text displayed - although the object seems to be functioning as the message appears in the console from the refresh function.

Regards,

Darryl

jjohnston
7 Apr 2012, 11:39 AM
I tried recreating your setup and it appears that the issue is that you've assigned layout:'fit' to the list. It works fine otherwise -- apparently assigning that prevents the plugin from rendering.

Try removing the layout and let us know if that does not fix the issue for you.

jjohnston
7 Apr 2012, 12:08 PM
That said, I did notice a related bug while building out this testcase: the fact that we instantiate the plugin during the list class's config definition causes issues when that class is used as the master for multiple linked instances, because all those instances end up sharing the same plugin instance. We should be generating a plain config object for the plugin, not instantiating it. I've opend internal ticket DSGNR-1709 to get this addressed.