我是Titanium的新手。
我有一个显示一些数据的tableview。我在每一行都添加了一个事件监听器来切换检查图像(rightImage)的显示,如下所示:
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位于以下文件夹中:project / Resources / 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上运行Titanium 2.1.2GA并在Android 2.3.6设备上测试应用程序,显示器为240 x 320像素
adb 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模拟器上完美运行(实际上它在模拟器上开箱即用,即使没有自定义图像)但它无法正常工作(无论如何都无法在设备上显示row.rightImage) 。
感谢任何帮助。
答案 0 :(得分: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();
注意:我已将eventListener添加到tableView而不是row。
答案 1 :(得分:1)
我能够让它在以后工作。
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);
图像路径没有太大变化。