您好我正在使用Titanium开发Android应用程序。我想在点击事件上更改图像。但我无法在表格视图中选择特定图像。我使用以下代码:
var user_table = Ti.UI.createTableView({minRowHeight:5.length,hasChild:true});
var data = [];
for (var i=0;i<5.length;i++)
{
var row = Ti.UI.createTableViewRow({height:'auto',className:"row"});
var username = Ti.UI.createLabel(
{
text:'user name',
height:'auto',
font:{fontSize:12, fontFamily:'Helvetica Neue', color:'#000'},
width:'auto',
color:'#000',
textAlign:'left',
top:0,
left:35,
});row.add(username);
var imageView = Ti.UI.createImageView(
{
image:'../images/user.png',
left:0,
top:0,
height:25,
width:25
});row.add(imageView);
}
feed_table.setData(data);
feedWin.add(feed_table);
我想在特定的表视图行中定位图像,以便我可以在点击事件中将其替换为另一个图像。帮助我选择特定的图像
答案 0 :(得分:3)
1)在表视图中,在整行上设置事件监听器。
tableView.addEventListener('click',function(event){
if ( event.source.id === undefined ) {
// if no id defined then you know it is not an image...
} else {
// you have an id, you have an image..
var rowNumber = event.index;
var image = event.source;
}
});
2)创建图像时,在每个图像上设置一个id,以便在点击事件中识别它
var imageView = Ti.UI.createImageView({
id :"image_"+ i, // set object id
image:'../images/user.png',
left:0,
top:0,
height:25,
width:25
});
答案 1 :(得分:-1)
我会这样做:
addRow = function(_args)
{
var row = Ti.UI.createTableViewRow(
{
height:'auto',
className:"row"
});
var username = Ti.UI.createLabel(
{
text: _args.text || 'user name',
height:'auto',
font:{fontSize:12, fontFamily:'Helvetica Neue', color:'#000'},
width:'auto',
color:'#000',
textAlign:'left',
top:0,
left:35,
});
row.add(username);
var imageView = Ti.UI.createImageView(
{
image:_args.image||'../images/user.png',
left:0,
top:0,
height:25,
width:25
});
row.add(imageView);
row.setImage = function(image)
{
imageView.imageURL = image;
};
row.addEventListener('click',function(e)
{
row.setImage('new/image/path');
};
return row;
}
var user_table = Ti.UI.createTableView({minRowHeight:5.length,hasChild:true});
var data = [];
for (var i=0;i<5.length;i++)
{
var newRow = addRow({
text: 'my text',
image: 'my image url'
});
data.push(newRow);
}
feed_table.setData(data);
feedWin.add(feed_table);
如果你需要设置网址,你也应该使用
feedWin.data[0].rows[indexOfRow].setImage('another/image/path');
试一试。没有编译,所以这只是一个提案。
[更新] 请注意'自动'值可能会在Android上吮吸。