Så 我注意到Sencha Touch中有一个非常烦人的错误。当我尝试将分页插件添加到我的数据视图时,"加载更多"文本放置在项目上方,而不是像我想要的那样放在下方。它适用于标准列表视图。
我发现另一个线程要求我将"inifinte:true"添加到我的数据视图中,但这没有帮助。"底部:0"也没有或"停靠:"底部"选项。这是我的代码:
{
xtype: 'dataview',
plugins: {
type: 'listpaging',
loadMoreText: 'Indlæs flere..',
autoPaging: true
},
flex: 1,
cls: 'inspectionImages',
itemId: 'imageContainer',
padding: 10,
style: 'background: #F7F7F7; color: black',
emptyText: 'Der er ingen billeder på synet.',
itemTpl: ['...'],
loadingText: 'Henter billeder..',
store: 'Images'
}
这里还有一个示例 sencha 小提琴代码 - 框架是 2.4.x:
Ext.application({
launch: function () {
var touchTeam = Ext.create('Ext.DataView', {
fullscreen: true,
plugins: {
type: 'listpaging',
loadMoreText: 'Indlæs flere..',
autoPaging: true
},
store: {
fields: ['name', 'age'],
data: [{
name: 'Jamie',
age: 100
}, {
name: 'Rob',
age: 21
}, {
name: 'Tommy',
age: 24
}, {
name: 'Jacky',
age: 24
}, {
name: 'Ed',
age: 26
}]
},
itemTpl: '<div>{name} is {age} years old</div>'
});
touchTeam.getStore().add({
name: 'Abe Elias',
age: 33
});
touchTeam.getStore().getAt(0).set('age', 42);
} // launch
}); // application()
我已经检查了 sencha 触摸文档中的 Ext.dataview.dataview,这在添加分页插件时显示了类似的行为,所以我知道这可能不是我自己的错。我真的希望将加载文本放在数据视图的底部。任何建议将不胜感激!
列表分页插件是为列表开发的。如果您将其用于数据视图,则"加载更多文本"将显示在顶部。我遇到了同样的问题,我已经浏览了列表分页插件 js。然后通过更改css属性获得解决方案。
检查"加载微调器"CLass并将样式更改为:style="字体大小:180%;边距:10px auto;位置:绝对;底部:0px;左:50%并检查类 -"列表分页-msg" 并将样式更改为 style="位置:绝对;底部:0px;左: 50%;"
这是Sencha Touch中的一个错误。米切尔·西蒙斯(Mitchell Simoens)在这里告诉过,它仅适用于List
,但我相信这也应该支持dataview
,因为与list
相比,它很轻。
在 sencha 论坛解决方案中,您可以看到他们将 xtype 从 dataview
更改为 list
。我也有同样的问题,我也做了同样的事情。但是,如果您想要dataview
的外观和感觉,您可以做一些添加,而不是list
。
disableSelection: true,
pressedCls: '',
我希望这对你有所帮助。如果您需要其他任何东西,请告诉我。
我在浏览了列表分页插件,Ext.dataview.DataView和Ext.dataview.List的代码后找到了解决方案。
初始化列表分页插件 数据视图初始化后,则"加载更多组件"位置将是正确的。
Ext.define('MyDataView', {
extend: 'Ext.dataview.DataView',
config: {
/* do not set here
plugins: [{
xclass: 'Ext.plugin.ListPaging',
autoPaging: true
}, {
xclass: 'Ext.plugin.PullRefresh'
}]
*/
},
initialize: function() {
var me = this;
me.callParent();
// Initialize plugin here, so the listpaging component will append after dataview container
me.setPlugins([{
xclass: 'Ext.plugin.ListPaging',
autoPaging: true
}, {
xclass: 'Ext.plugin.PullRefresh'
}]);
}
}
事实证明,分页插件不适用于Dataview。不过可以使用它。最后,我最终只是在每次加载插件结束时手动移动 DOM 中的"加载更多"文本。为了确保没有丢失侦听器,我使用了 appendchild JS 函数并应用了一些自定义 css。现在一切都按预期工作。