可能的错误?当TableView具有部分时,TableView event.index是错误的

时间:2013-11-24 10:02:42

标签: titanium appcelerator titanium-alloy

下面我包含了示例应用中的所有代码以重现此问题。首先,这是截图和描述:

这是版本/平台信息:

  1. Titanium命令行界面,CLI版本3.1.2,Titanium SDK版本3.1.3.GA
  2. Titanium Studio,build:3.1.3.201309132423
  3. 在Win7 chrome,Mobile Web Preview
  4. 上测试

    浏览器中应用的屏幕截图

    app screenshot

    • 如果单击“One”,您将看到索引0的警报,如预期的那样。
    • 如果单击“三”,您将看到索引1的警报,正如预期的那样。
    • 如果单击“两个”,您将看到索引2的警报,如预期的那样。
    • 如果您点击“四”,您会看到索引2的警告,未按预期
    • 事实上,如果你向“Evens”部分添加更多行,他们都会提醒索引2.

    这是一个错误吗?我是否误解了索引如何在部分上下文中起作用?

    Fwiw,我尝试了各种不同的创建表的方法(例如,先将TableViewRows添加到TableViewSections然后再使用appendSection),但它们都有同样的问题。

    此外,如果我仅使用XML创建行和部分,则会出现同样的问题。

    最终,我希望能够将click事件的索引用作deleteRow()的参数,这在尝试动态删除第一部分中的行时工作正常,但它会很快崩溃单击第二部分中的任何内容,因为索引始终相同,deleteRow(2)甚至没有删除第二部分的第一个条目,正如您所料(它什么都不做)。

    INDEX.XML

    <Alloy>
        <Window class="container">
            <TableView id="table" onClick="alertIndex">
            </TableView>
        </Window>
    </Alloy>
    

    index.js

    function alertIndex(e) {
        alert(e.index);
    }
    
    function createTable() {
        var rows = [];
        rows.push(Ti.UI.createTableViewSection({ headerTitle: "Odds" }));
        rows = rows.concat(makeTableViewArr(["One", "Three"]));  
        rows.push(Ti.UI.createTableViewSection({ headerTitle: "Evens" }));
        rows = rows.concat(makeTableViewArr(["Two", "Four"]));  
        $.table.setData(rows);
    }
    
    function makeTableViewArr(arrRowText) {
        return arrRowText.map(function(rowText) {
            return makeTableViewRow(rowText);
        });
    }
    
    function makeTableViewRow(rowText) {
        return Ti.UI.createTableViewRow({
            title: rowText,
            className: "row"
        });
    }
    
    
    createTable();
    $.index.open();
    

    index.tss

    ".container": {
        backgroundColor:"white"
    },
    "Label": {
        width: Ti.UI.SIZE,
        height: Ti.UI.SIZE,
        color: "#000"
    } 
    ".row": {
        height: 75,
        backgroundColor: '#fff',
        color: '#000',
        font: {
            fontStyle: 'italic',
            fontSize: '16sp'
        },
    }
    

    更新

    我收到确认,这确实是一个错误。它会影响移动网络,而不会影响Android或iOS。我创建了a JIRA ticket for it here

0 个答案:

没有答案