1

嗨,我正面临 TableView 的问题。我有一个 TableView 并向 TableView 添加了 5 行。每行有 2 张图像。

 var tableRow = Ti.UI.createTableViewRow({
    className : 'row',
    objName : 'row',
    height : 'auto',
    top : '10dip',
    bottom : '10dip',
    left : '20dip',
    right : '30dip',
    height : '80dip'
});
var backgroundView = Ti.UI.createView({
    backgroundImage : '/images/list-bg.png',
    width : '90%',
    height : '75dip'
});
var full= Ti.UI.createImageView({
    image : '/images/boxfull.png',
    right : 10,
    top : 35,
    width : 20,
    height : 20,
    visible : false,
    objName: 'checkImage'
});
backgroundView.add(checkImage);
var empty= Ti.UI.createImageView({
    image : '/images/boxempty.png',
    visible : false,
    right : 10,
    top : 35,
    width : 20,
    height : 20,
    objName: 'uncheckImage'
});
backgroundView.add(uncheckImage);
var requestName = Ti.UI.createLabel({
    text : '' + json.requestName,
    left : '60dip',
    top : '5dip',
    right : '10dip',
    textAlign : 'left',
    ellipsize : true,
    wordWrap : false,
    font : {
        fontSize : '12dip',
        fontWeight : 'bold'
    },
    color : '#285a8c',
    height : '30dip',

});
backgroundView.add(requestName );
tableRow.add(backgroundView);
section1.add(tableRow);
tableView.setData(data);

当用户单击按钮时,应向用户显示其中一个图像。

var sectionArray = tableView.getData();
var sectionsLength = tableView.getData().length;
for (var i = 0; i < sectionsLength ; i++) {
    Ti.API.info("get sections-->" + i);
    var rows = [];
    rows = sectionArray[i].getRows();
    for (var j = 0; j < rows.length - 1; j++) {
        if (rows[j].requestId != undefined) {
            Ti.API.error(JSON.stringify(rows[j].children[0]));
            rows[j].children[0].children[1].visible = true;
        }
    }
}

然后,如果用户单击该行,则需要显示其他图像并且上一个图像应该是不可见的。

           if (e.row.children[0].children[1].visible == true) {// if emptyimage visible is true then change visibility to false
            e.row.children[0].children[1].visible = false;
            // change visibility of checked image to true
            e.row.children[0].children[0].visible = true;

        } else {
            //change checked image visibility to false
            e.row.children[0].children[0].visible = false;
            // change unchecked image visibility to true
            e.row.children[0].children[1].visible = true;
        }

一切正常,我可以加载表格。但是当用户单击按钮时,表格中的每一行都不会显示 boxempty.png 图像。当我旋转屏幕方向或滚动表格视图时,只有我能看到 boxempty.png 图像。当用户点击表格行时,同样的问题会重复显示 boxfull.png。我在Android中面临的这个问题。

4

1 回答 1

0

只需尝试将图像视图的尺寸更改为宽度和高度各 25 像素。创建多个选择器选择器时,我遇到了同样的问题。我在那里使用了上述尺寸。我不知道问题的确切原因。我在整个应用程序中都使用了像素。

var empty= Ti.UI.createImageView({
    image : '/images/boxempty.png',
    visible : false,
    right : 10,
    top : 35,
    width : 25,
    height : 25,
    objName: 'uncheckImage'
});
于 2013-03-28T10:21:57.913 回答