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