从 ScrollableView 中删除页面时,Titanium 应用程序崩溃

Posted

技术标签:

【中文标题】从 ScrollableView 中删除页面时,Titanium 应用程序崩溃【英文标题】:Titanium app crashes when removing pages from ScrollableView 【发布时间】:2015-01-10 13:01:01 【问题描述】:

我有一个应用程序使用 ScrollableView 和动态添加的页面。我有一个删除视图的功能。如果我没有更改ScrollableView 中的页面,则页面将被删除。但是,如果我滚动到不同的页面,即不是第一页,则尝试删除应用程序崩溃的页面。在 ios 上没问题,但我在 android 上遇到了问题。

这是从ScrollableView 中删除视图的函数。

function emptyScrollView()
    var views = $.bookables_scroll.views;
    var count = views.length;
    for (var i = 0; i < count; ++i) 
        $.bookables_scroll.removeView(views[i]);
        $.bookables_scroll.views[i] = null;
    

这是向我的ScrollableView 添加视图的代码

var payload = 
    bookable : bookable,
    rota: b_rota,
    current_date: current_date,
;

// adds to scrollable view
$.bookables_scroll.addView(Alloy.createController('appointments_bookable', payload).getView());

当我从第一个视图/页面滚动后删除视图/页面时,为什么应用会崩溃?

钛 v3.4.0 合金 v1.5.1

【问题讨论】:

您在控制台中看到了什么错误消息? 合金+钛版也 @phil 用这些版本更新了我的 Q。我在控制台中没有收到错误。我只是弹出“不幸的是,应用程序名称已停止”。 在logcat中检查错误,会有一些。还有你怎么打电话给emptyScrollView(),你能显示一些代码吗? 【参考方案1】:

if ($.bookables_scroll && $.bookables_scroll.children != undefined)

// Save childrens
var removeData = [];

for (i = $.bookables_scroll.children.length; i > 0; i--) 
    removeData.push($.bookables_scroll.children[i - 1]);
;

// Remove childrens
for (i = 0; i < removeData.length; i++) 
    $.bookables_scroll.remove(removeData[i]);

removeData = null;

尝试将子视图保存到数组中,然后使用另一个循环删除可滚动视图中的所有页面。

希望对你有帮助。

谢谢

【讨论】:

那行不通。 $.bookables_scroll.children 显示为空数组【参考方案2】:

在尝试了许多删除方法后,我遇到了同样的问题,我最终删除了该可滚动视图的所有侦听器,删除它,使用 removeAllChildren 删除它的子控制器,清理他的每个子控制器并使用新子创建一个新控制器视图并替换它。是的,这不是最好的方法,但组件总是与我尝​​试的任何其他事情一起崩溃。

【讨论】:

【参考方案3】:

它是 Titanium ScrollableView 中的一个错误,并在 SDK 5.4.0 中修复,正如他们在 Jira 中确认的那样

https://jira.appcelerator.org/browse/TIMOB-20116

【讨论】:

以上是关于从 ScrollableView 中删除页面时,Titanium 应用程序崩溃的主要内容,如果未能解决你的问题,请参考以下文章

从 url 中删除搜索查询而不刷新页面?

EF执行savechanges失败然后直接返回页面的处理办法

如何从我的结果中删除 CASE 语句?

页面刷新时 JWT Token 已从标题中删除,如何修复?

在 jQuery Mobile 中显示对话框时页面从 DOM 中删除

如何从图像文件夹中删除图像?