移动设计 - 显示多列表

时间:2016-02-17 23:42:31

标签: android ios appcelerator appcelerator-titanium

我们正在开发一款手机应用程序,我们需要在手机上显示多列数据。考虑下面的一个这样的例子:


Commodity Name|Qty at A|Qty at B|Qty at C|Qty at D|Qty at E|
==============|========|========|========|========|========|
Sugar         |      10|     500|       -|       -|  100000|
============================================================
Rice          |     100|     100|       -|       -|  100000|
============================================================
Pulses        |     100|     100|       -|       -|  100000|

现在需要将此表格视图并排显示以进行比较。如果我们在手机中显示它,则需要用户水平滚动以查看数据。现在可以有超过20个项目,因此肯定会有垂直滚动。

在移动设备中显示此类数据的标准方式是什么,用户可以并排比较数据。此应用程序将针对Android和iOS,并使用Appcelerator构建以获取更多信息。

3 个答案:

答案 0 :(得分:1)

有一次,我以两种不同的方式为Android和iOS做了这件事。在Android上:

  1. 我用scrollType : 'horizontal'创建了一个scrollView 然后得到表的行数并根据它定义滚动高度: scroll.setHeight(60*(number_of_rows+1)); //60 is the row height

  2. 在for循环中,我没有创建一个表和一个tableviewRow,而是创建了一个大视图(width : 600)并将其添加到scrollView中。所以这将产生一个相当高和大的水平scrollView。

  3. 最后,我在另一个scrollView中添加了这个水平scrollView,现在我的设备高度(或只是Ti.UI.FILL
  4. 总结如下: ``` var rowsArray = yourContent;     var verticalScroll = Ti.UI.createScrollView({         顶部:0,         width:Ti.UI.FILL,         height:Ti.UI.FILL     });

    var horizontalScroll = Ti.UI.createScrollView({
        top: 0,
        width: Ti.UI.FILL,
        scrollType : 'horizontal',
    });
    
    horizontalScroll.setHeight(60*(rowsArray.length+1)); //60 is the row height
    var posY = 60;
    for (var i = 0; i < rowsArray.length; i++) {
        var rowView = Ti.UI.createView({
            top: posY,
            width: 600, 
            height: 60, 
            left: 0
        });
        posY += 60;
        horizontalScroll.add(rowView);
    }
    
    verticalScroll.add(horizontalScroll);
    win.add(verticalScroll);
    

    对于iOS,您可以将表放在scrollView中 ;)

答案 1 :(得分:0)

试试this。虽然它讨论的是响应式网页设计,但这个概念仍然适用。

它还指出了其他alternatives

答案 2 :(得分:0)

我正在使用类似的东西,在每个TableViewRow上我都有这样的代码:

$.row.layout = 'horizontal';

var width = parseInt(($.row.width ? $.row.width : Ti.Platform.displayCaps.platformWidth)/columns.length);

for(var i in columns) {

    $.row.add(Ti.UI.createLabel({
        text:columns[i],
        width:width
    }));
}

我有一个名为cell的元素,但是你明白了,对吧?