[英]touchstart and touchend events not working on tableview of titanium(Android)
我正在使用Titanium開發Android應用程序。我想在Titanium的tableview上應用touchstart和touchend事件。我嘗試了以下代碼:
var userWin = Ti.UI.currentWindow;
var data = [];
for (var i=0;i<5;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);
}
usertable_table.setData(data);
userWin.add(feed_table);
userWin.addEventListener('touchstart', function(e){
alert(e.x);
// Ti.API.debug(['row touchstart', e]);
});
如果我單擊表的行,則不會彈出,不應用touchstart事件。但是,如果我單擊行的元素(如圖像或名稱),則會給出輸出,即ex of vale。即使我將兩個事件都應用於當前窗口, ,s提供輸出。但是,如果我在表格視圖或表格視圖的行上應用它不起作用。 實際上,我正在嘗試在桌子上滑動事件,但也無法正常工作,因此我嘗試了touchstart和touchend事件。 有什么辦法可以解決這個問題。
抱歉,但您可以在Titanium Docs中閱讀, Android仍然不為TableViewRow提供touchstart
和touchend
。 也許您找到了其他解決方案,但也許其他人也遇到了類似的麻煩,因此我想提供一個可行解決方案的想法。 不幸的是,您可以在該行中添加一個偵聽器,然后可以單擊該行的元素。 之所以能夠成功,是因為您可以在SDK 3.0.0及更高版本中控制事件的冒泡。 在以前的版本中,沒有防止事件冒泡的選項。
滑動是Android也不提供的手勢。 如果要使用類似滑動的手勢,可以在行中所有元素的頂部放置一個透明視圖。
Ti.UI.createView({
width: Ti.UI.FILL,
height: Ti.UI.FILL, //should be row height, can be set explicitely if known
backgroundColor: '#0000', //should be transparent
});
然后,您可以將所有用於類似滑動手勢的算法應用到該視圖。 盡管這是用戶可用的最頂層的元素,但它應該對所有用戶輸入做出反應。 但是請注意,此透明視圖后面其他元素上的偵聽器將不再作出反應。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.