我有一个具有主/明细面布局的平板电脑应用程序,在主面板中有一个更改详细信息窗格内容的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 ?
答案 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”