【问题标题】:Sencha Touch 2.2: list items render on top of each other in android phonegap appSencha Touch 2.2:列表项在 android phonegap 应用程序中相互叠加
【发布时间】:2013-05-06 11:34:01
【问题描述】:

我遇到了这个奇怪的问题,在我的 sencha touch 2.2 android phonegap 应用程序的每第三次启动时,我的所有列表项都呈现在彼此之上。只要您稍微拖动列表,它就会自行排序。

尝试了很多事情:更改列表中的所有配置,删除所有自定义 css,添加滚动功能,在列表完成渲染后向下滚动然后再次向上滚动,但无济于事。

有什么想法吗?

更新:更好地描述设置。

列表位于导航视图内,而导航视图又位于幻灯片导航视图内 (github.com/wnielson/sencha-SlideNavigation)。

在列表视图初始化时设置存储。

列表定义(稍微简化):

Ext.define('Labblistan.view.LabList', {
extend: 'Ext.dataview.List',
xtype: 'lablist',
requires: [
    'Labblistan.controller.SearchController',
    'Ext.util.DelayedTask',
    'Ext.plugin.PullRefresh',
    'Ext.SegmentedButton'],

id: 'lablist',
config: {
    grouped: true,
    infinite: true,
    useSimpleItems: true,
    variableHeights: true,
    plugins: [{
        xclass: 'Ext.plugin.PullRefresh',
        pullRefreshText: 'Dra ned för att uppdatera!',
        lastUpdatedText: 'Senast uppdaterad',
        loadingText: 'Förbereder uppdatering',
        releaseRefreshText: 'Släpp för att uppdatera!',
        refreshFn: function (plugin) {
            confirmUpdate();
        }
    }],
    itemTpl: itemtemplate, //long and kinda complicated so I didn't include it here
    onItemDisclosure: true,
    disableSelection: true,
    indexBar: {
        right: '-10px'
    },
    loadingText: 'Laddar',
    iconmask: true,
    scrollToTopOnRefresh: false,
    cls: 'listan',
    items: items, //Contains another toolbar with some buttons for improved sorting
    listeners: {
        initialize: function () {
            console.log('initialize list');
            var dynstore = Ext.getStore('LabListStore');
            this.setStore(dynstore);
        },
        painted: function () {
            console.log('painted list');
            setTimeout(function () {
                Ext.getCmp('listbar').enable();
            }, 600);
            Ext.Viewport.setMasked(false);
            return false;
        },
        hide: function () {
            console.log('hide list');
            return false;
        }
    }
}
});

【问题讨论】:

  • 你能分享一些代码吗?桌面浏览器也会出现这种情况?
  • 很遗憾,由于 cordova 代码,无法在桌面浏览器中进行测试。虽然不会发生在 iOS 上。什么代码会有帮助?清单 conf?现在将添加该设置 + 扩展描述
  • 我已经遇到了一些关于 phonegap 的奇怪错误。如果在 IOS 中运行良好,我建议您首先尝试使用其他版本的 phonegap(可以是旧版本,仅用于测试)。我在您的 sencha 代码中看不到任何问题,因此可能是 phonegap 或您正在使用的某些插件。只需将您的“id”放在配置中,所有配置现在都必须位于配置对象内(不推荐使用外部配置)。我也遇到了麻烦(在 sencha 编译器之后产生了一个非常奇怪的问题)。
  • 谢谢,因为我现在在 2.6 上,我将从升级到 2.7 开始,看看它是否有所作为。哦,移动 id,谢谢!
  • 您能否分享链接到您的列表的 CSS。与 .listan 相关的一切

标签: cordova sencha-touch sencha-touch-2


【解决方案1】:

如果您已将您的应用升级到 Sencha 2.2(而不是生成一个新的),那么在升级 app.css 时可能会出现问题(这是我升级的时候)。 Sencha 2.2 中对列表进行了重大修改,因此 2.2 之前的 CSS 打破了列表。

如果您将升级失败的 app.css 替换为从新的 Sencha 2.2 应用 (sencha app generate) 创建的 app.css,那么应该可以解决问题,或者至少对我有用。如果这不起作用,请添加:

.x-list .x-list-item{
    position: relative !important;
}

应该可以。

希望对你有帮助!

【讨论】:

  • 不幸的是,这对我不起作用,而是增加了一个全新的问题,即滚动时项目会逐渐变高。截图:i44.tinypic.com/zl88xu.png
  • 也许尝试查看 CSS 并删除自然填充/边距/降低 .x-list-item 的高度?
  • 您指的是 ST 2.2 自己的默认 css 还是我可能拥有的任何自定义 css?
  • 两者。在列表项上检查 Chrome 中的元素:)
  • 不幸的是,我无法在 chrome 中进行检查,因为如果没有某些 phonegap 特定代码,该应用程序将无法运行
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-08-14
  • 1970-01-01
  • 1970-01-01
  • 2012-05-05
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多