簡體   English   中英

touchstart和touchend事件在Titanium的Tableview上不起作用(Android)

[英]touchstart and touchend events not working on tableview of titanium(Android)

我正在使用Titanium開發Android應用程序。我想在Titanium的tableview上應用touchstarttouchend事件。我嘗試了以下代碼:

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提供touchstarttouchend 也許您找到了其他解決方案,但也許其他人也遇到了類似的麻煩,因此我想提供一個可行解決方案的想法。 不幸的是,您可以在該行中添加一個偵聽器,然后可以單擊該行的元素。 之所以能夠成功,是因為您可以在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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM