appcelerator钛合金onclick被忽略了

时间:2013-11-30 15:10:32

标签: onclick titanium appcelerator titanium-alloy

我在index.xml中将一个onClick侦听器添加到ImageView中。 单击ImageView不会触发index.js中指定的函数,但是将onClick添加到包含的视图中。这几乎就像包含视图捕获点击并且不允许包含的ImageView接收它一样。但是,我有其中几个,其他似乎工作正常。

INDEX.XML:

<Alloy>
<Window class="container" onOpen="onWIndowLoad">
    <View id="wholeView">
        <!-- header -->
        <View id="appTopMenuHolder">
            <ImageView id="appMenuButton" image="/images/menu_icon.png" onClick="askWhy"></ImageView>
            <View id="appTitle"></View>
            <View id="newIcon"></View>
        </View>
        <View id="group"> <!-- removed onClick="testViewClick" -->
            <ImageView id="porfilePic" image="/images/profile.png" onClick="askWhy"></ImageView> <!-- removed onClick="askWhy" -->
        </View>
        <!-- scrollable status section -->
        <ScrollView id="statusViewHolder" scrollType="vertical">
        </ScrollView>
    </View>
</Window>

index.js:

function askWhy(e) {
    alert("why");
}

任何帮助或推动正确的方向将不胜感激。 谢谢, -NP

1 个答案:

答案 0 :(得分:3)

我确信您的问题来自您的样式(通常在.tss文件中)。在index.tss文件中尝试以下代码:

".container":{
    backgroundColor: 'black'
}
"#appTopMenuHolder":{
    top:0,
    backgroundColor: 'red',
    height: 100,
    width: Ti.UI.FILL
}
"#appTitle":{
    top:0,
    backgroundColor: 'yellow',
    height:20
}
"#newIcon":{
    top:20,
    backgroundColor: 'white',
    height:20
}
"#group":{
    top: 100,
    backgroundColor: 'blue'
}
"#statusViewHolder":{
    backgroundColor: 'green',
    bottom: 50,
    height: 100,
    width: Ti.UI.FILL
}

您的问题可能是您没有为视图指定位置和维度值。当发生这种情况并且未设置布局属性时,钛将使视图居中并将尺寸设置为“自动”值。在这种情况下,“自动”值将填充其父级。

因此,您的观看次数newIcon可能与观看次数重叠:appTitleappMenuButtonstatusViewHolder也可能发生同样的情况。它可能与wholeView中的所有其他视图重叠。

这样说,您最好指定所有组件的位置和尺寸,以避免意外行为。