0

我是新手,titanium我正在尝试构建一些基于wireframes. 下面是wireframe我正在尝试构建的原型。

您看到的是从中获取的餐馆列表google places api。这里的主要功能是黑色条带,它将位于固定位置,并保存其下方特定餐厅的评分和评论的详细信息。

因此,如果我滚动浏览餐厅,黑色条应该会获得位于其下方的特定餐厅的评级详细信息。

到目前为止,我能够将来自 google places api 的餐厅数据抓取到表格视图的行中。

我不确定如何调用此功能或如何实现此功能。

各位大佬能给我指路吗……

4

2 回答 2

2

@萨拉特,

我假设你想为 iOS 或 Android 应用程序开发这个原型,所以使用 Titanium 我有以下关于设计和功能的建议

实现设计: 对于 Android - 使用具有列表视图的相对布局,您可以在顶部以固定位置加载评级/评论图标

对于 iOS/iPhone - 添加父视图,然后添加表视图以加载餐厅并在另一个表视图中添加评级/评论图标,与餐厅列表的顶部位置相同

实现功能: 您将获得您正在加载的餐厅列表中的表视图的第一个单元格索引,因此请使用单元格标识符继续检查表的哪个单元格位于表视图的顶部。

于 2012-10-08T12:16:06.140 回答
0

将它作为行的一部分包含在内不是更容易吗?否则用户一次只能看到一行信息,我认为这是不好的设计。

更重要的是,除非您在 TableView 的末尾添加大量虚拟表格行,否则这在 iOS 上不起作用,因为用户无法将最底部的行滚动到屏幕顶部!

本教程向您展示如何拥有自定义表格行。使用它作为添加您的评论和喜欢按钮图像的起点。我真的没有其他选择,因为您的固定位置方法需要破解 TableView 组件或使用转换将底行移动到顶部。

编辑:

如果您必须这样做,最好的方法是在实际表格行的末尾添加一些空白表格行,以便用户可以一直向下滚动到包含内容的最后一行(这种方式固定位置可以检测到它的上方)。

接下来创建包含三个按钮的视图,确保它在窗口中的绝对位置(因此它保持固定)并且 zIndex 大于 TableView:

var likeAndCommentHolderView = Ti.UI.createView({
    top : 45,
    left : 0,
    //.... etc
    zIndex : 101
});
window.add(likeCommentHolderView);

现在你必须弄清楚用户在哪一行结束。这可以使用scrollEndTableView 的事件并获取contentOffset事件的属性来完成。'scrollEnd' 事件在用户完成滚动 tableView 中的行时触发,它返回一个具有 的事件,这只是衡量您从tableView顶部contentOffset滚动了多少。使用简单的数学运算,计算偏移量除以 ,即用户正在查看的行索引。rowHeight

// Assume table view is at coordinates : top=45, left=0 and you have defined rowHeight
tableView.addEventListener('scrollEnd', function(e) {
    // Use this to determine which row your over
    var contentOffset = e.contentOffset;
    // Figure out the index
    var rowIndex = contentOffset / rowHeight;
    // Get the row, assume first section
    var section = tableView.data[0];
    var rowObject = section.rows[rowIndex];
    // Now update your UI with data from the row
    var name = rowObject.restaurantName;
});

现在您在表中有实际的行对象,您可以提取

这只是一个大致的轮廓,这并没有考虑到平台之间的一些差异,我把它留给你去弄清楚,但这是一个很好的通用方法。

于 2012-10-08T23:55:46.343 回答