0

我是鈦新來的。Appcelerator鈦tableviewrow rightImage不適用於Android設備

我有一個tableview顯示一些數據。我已經在各行中添加事件偵聽器來切換支票影像(右圖)這樣的顯示:

row.addEventListener('click', function(e){ 
    if(e.row.getHasCheck()){ 
      e.row.setHasCheck(false); 
      e.row.rightImage = 'android/images/blank.png'; 
      e.rowData.rightImage = 'android/images/blank.png'; 
     } else { 
      e.row.setHasCheck(true); 
      e.row.rightImage = 'android/images/check.png'; 
      e.rowData.rightImage = 'android/images/check.png'; 
     } 
    }); 
  • 的圖像click.png和blank.png夾中:項目/資源/ android/images(密度無關)

  • 我已經嘗試e.row.rightImage以及e.rowData.rightImage,因爲在其他幾個問題中都提到了這兩個問題。

  • 我tiapp.xml Android清單如下:

    <android xmlns:android="http://schemas.android.com/apk/res/android"> 
        <manifest> 
         <supports-screens 
          android:smallScreens="true" 
          android:normalScreens="true" 
          android:largeScreens="true" 
          android:anyDensity="true" 
         /> 
        </manifest> 
    </android> 
    
  • 我在Ubuntu Linux上運行的鈦2.1.2GA和一個240×320的Android測試2.3.6設備上的應用程序像素,顯示效果

  • 在亞行logcat唯一相關的部分是:

    I/InputReader(1490): dispatchTouch::touch event's action is 0 
    I/InputDispatcher(1490): Delivering touch to current input target 
    I/InputReader(1490): dispatchTouch::touch event's action is 1 
    I/InputDispatcher(1490): Delivering touch to current input target 
    

    沒有什麼不尋常,沒有警告,錯誤等。

問題:撥動(選中/取消),適用於Android模擬器完全正常的(實際上它工作正常,右出的仿真器包裝盒的,即使沒有自定義圖像),但它不能在任何情況下工作(無法顯示行.rightImage)在設備上。

任何幫助表示讚賞。

回答

0

我能夠在以後工作。

內的for循環

var row = Titanium.UI.createTableViewRow({ 
    //I was dealing with contacts 
    title : contacts[i].fullName + ", "+ contacts[i].phone.mobile[j], 
    rightImage : 'images/blank.png' 
    }); 
row.addEventListener('click', function(e) { 
    if(e.row.getHasCheck()){ 
     e.row.setHasCheck(false); 
     e.row.setRightImage('images/blank.png');    
    } else { 
     e.row.setHasCheck(true); 
     e.row.setRightImage('images/check.png');    
    } 
}); 
tableData.push(row); 

沒有太大的變化,但圖像的路徑。

1

試試這個示例代碼,更改行權圖像

Ti.UI.backgroundColor = 'white'; 
var win = Ti.UI.createWindow(); 

var tableData = []; 

for(var index = 1; index<= 10; index++) 
{ 
    var row = Titanium.UI.createTableViewRow({ 
     title  : 'row '+ index, 
     rightImage : 'images/blue.png' 
    }); 


    tableData.push(row); 
} 
var table = Ti.UI.createTableView({ 
    data: tableData 
}); 

table.addEventListener('click', function(e){ 
     image = 'images/black.png'; 
     e.source.setRightImage(image); 
}); 
win.add(table); 

win.open(); 

注意:我已經添加了事件監聽到的tableView而不是行。

+0

感謝您的努力和迴應,阿南德。稍後我能夠使其工作,並將eventlistener附加到該行本身。 –

+0

合資公司,把代碼放在這裏,以便它可以幫助其他人 – Anand

+0

將事件監聽器與表視圖連接起來會更容易嗎? – Anand