如何在Titanium Android中永久选择/突出显示TableView行?

时间:2013-01-23 20:17:29

标签: android titanium tableview

我有一个具有主/明细面布局的平板电脑应用程序,在主面板中有一个更改详细信息窗格内容的TableView。我希望主人的行在点击时突出显示,就像在Android操作系统设置中一样。

现在,我能做的最好的事情是将backgroundColor设置为新颜色以响应'click'事件。但是,当我快速点击时,该行突出显示,然后再次突出显示之前闪烁恢复正常。我猜这是我解除手指和backgroundColor改变之间的延迟。

tableview.addEventListener('click', function(e) {
    ...
    else if (e.rowData.id == 3) { // scan history
        e.row.backgroundColor = 'blue';

这似乎与其他人一样:http://developer.appcelerator.com/question/124359/android---tableviews-deselectrow

如果我只是使用Android而不是Titanium:How can I highlight the table row on click ?

2 个答案:

答案 0 :(得分:1)

试试这个。触摸开始立即被调用,而点击通常不是。请注意,according to the docs一个scroll事件和一个touch事件不能同时发生在iOS和Android上,所以如果你有一个`touchstart,你可能也希望处理touchcancel事件“听众。

tableview.addEventListener('touchstart', function(e) {
    ...
    // Get the source row, and then get its id
    else if (e.source.id == 3) { // scan history
        e.row.backgroundColor = 'blue'; 
});

修改 也许更好的方法是处理touchend事件。这将处理快速点击,用户滑动到不同的行,以及滚动边缘情况。

答案 1 :(得分:1)

创建行时,请使用:

selectionStyle : "NONE"

这可以防止它在点击/触摸时改变颜色

滚动您自己的事件监听器,以确切地确定何时突出显示您的行。

iOS蓝色行选择颜色类似于:“#006EF1”