2013-03-28 35 views
1

嗨我正面臨着TableView的問題。我有一個TableView並添加了5行到TableView。每行有2個圖像。Android中的鈦表格查看器

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圖像。當我旋轉屏幕方向或滾動tableview時,只有我能夠看到boxempty.png圖像。當用戶點擊表格行時,同樣的問題重複顯示boxfull.png。我在Android中遇到的這個問題。

+0

嘗試調整android圖像視圖的高度,嘗試增加高度。它可能會解決您的問題 – Anand 2013-03-28 06:27:19

+0

我爲ImageView指定了32dip高度,但沒有結果。 – user2218520 2013-03-28 08:52:32

+0

只需嘗試將圖像視圖的尺寸更改爲寬度和高度各爲25像素。創建多選擇器選擇器時遇到過同樣的問題。我想你也在嘗試。我在那裏使用了上面的維度。我不知道問題的確切原因。我在整個應用程序中使用了像素。 – Anand 2013-03-28 09:49:56

回答

0

只要嘗試將圖像視圖的尺寸更改爲寬度和高度各爲25像素。創建多選擇器選擇器時遇到過同樣的問題。我在那裏使用了上面的維度。我不知道問題的確切原因。我在整個應用程序中使用了像素。

var empty= Ti.UI.createImageView({ 
    image : '/images/boxempty.png', 
    visible : false, 
    right : 10, 
    top : 35, 
    width : 25, 
    height : 25, 
    objName: 'uncheckImage' 
});