【问题标题】:Dynamically load table view content in Titanium for Android在 Titanium for Android 中动态加载表格视图内容
【发布时间】:2012-02-23 00:24:04
【问题描述】:

我正在创建一个使用 Google Books API 的应用程序。因此,每当我搜索一本书时,它都会给出 JSON 响应,然后我将这些结果加载到我的表格视图中。当我搜索时,会有数千本书的结果。但我不想在我的表格视图中加载所有内容。每当我向下滚动时,它只需要加载下一本书。

谁能给我一个代码或粗略的想法,告诉我如何使用 Titanium 在 Android 中执行此操作?我已经查看了这篇文章:https://github.com/appcelerator/KitchenSink/blob/master/Resources/examples/table_view_dynamic_scroll.js 但这是用于 iPhone,我也需要它用于 Android。帮帮我...

【问题讨论】:

  • 其中大部分也适用于 Android。只需删除 iPhone 的特定部分(如动画),它就会工作
  • 我删除了那些 iphone 动画部分..但它仍然在 tableview 当前偏移量中给出错误...你能提供在 android 中使用它的任何链接吗?
  • 抱歉,没有使用它。但是将错误添加到问题中,也许我可以提供帮助
  • 这不是错误..在 API Doc 本身中他们提到“e.contentOffset.y”不适用于 android.so 它给出异常

标签: android titanium tableview google-books


【解决方案1】:

环顾四周后,我为 android 实现了以下解决方案:

tableView.addEventListener('scroll', 
    function(e) {
        if (!e.source.__doneUpdating && e.totalItemCount % e.source.__pageSize === 0) {
            var distance = e.totalItemCount - e.firstVisibleItem;
            if (distance <= e.visibleItemCount) {
                if (!e.source.__updating) {
                    e.source.__updating = true;
                    e.source.fireEvent('beginUpdate', e);
                }
            }
        }
        Ti.API.info('-------------------');
        Ti.API.info( 'e.firstVisibleItem: ' + e.firstVisibleItem);
        Ti.API.info( 'e.totalItemCount: ' + e.totalItemCount);
        Ti.API.info( 'e.visibleItemCount: '+ e.visibleItemCount);
    }
);

其中e.source.__pageSizee.source.__doneUpdatinge.source.__updating 是内部变量,由向 tableView 中插入行的代码维护。

【讨论】:

    猜你喜欢
    • 2020-05-09
    • 2013-11-08
    • 1970-01-01
    • 1970-01-01
    • 2016-05-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多