在Titanium

时间:2015-07-13 06:14:28

标签: android titanium titanium-mobile appcelerator

您好我实施了侧栏导航。 它有3个选项,如侧边栏菜单,第一个屏幕(即index.js)是主屏幕。 问题是,当我通过侧边栏菜单进入任何屏幕,然后再次回到主屏幕,然后从主屏幕,如果我按回按钮,它会进入最后一个屏幕访问。预期的行为应该是,如果我回到主屏幕它应该退出申请。 那么如何跟踪主屏幕。 如果我在主屏幕上,它应该以任何方式退出应用程序而不是从主屏幕到最后访问的屏幕。

这是代码。 代码有点冗长。 任何人都可以帮忙吗?

index.xml文件

<Alloy>
<Window id = "win" onOpen="openCurrentIssue">
    <View id="view1"  width="75%" height="Ti.UI.FILL" left="0%" >
        <TableView id="menuTable"></TableView>
    </View>
    <View id="view2"  width="Ti.UI.FILL" height="Ti.UI.FILL" backgroundColor="#A9F5A9" >

        <View id="viewcheck1" >
            <Label id="title" width="Ti.UI.SIZE" text="PolymerCommunique" height="Ti.UI.SIZE" textAlign="Ti.UI.TEXT_ALIGNMENT_CENTER"></Label>
            <ImageView id="menuImg" image="/images/menu.png" onClick="showsideBar" left="5"></ImageView>
        </View>

        <View id="viewcheck2"  width="Ti.UI.SIZE" height="Ti.UI.SIZE" backgroundColor="#A9F5A9" layout="vertical">

            <Label id="cIssue" text="Demo" width="Ti.UI.SIZE" height="Ti.UI.SIZE" textAlign="Ti.UI.TEXT_ALIGNMENT_CENTER" top="10" color="black"></Label>
            <ImageView id="cImage" width="Ti.UI.SIZE" height="Ti.UI.SIZE" top="45"></ImageView>
            <Button id="cButton" title="Advertiser"></Button>
        </View>

        <View id="viewBelow" width="150" height="Ti.UI.FILL" backgroundColor="#A9A5A9" left="-150" visible="false" top="40">
            <TableView id="menuTable"></TableView>
        </View>

    </View>
</Window>

index.js文件

var isMenu = false;
function showsideBar(e) {
try {
    if (isMenu) {
    $.viewBelow.animate({
        left : -150,
        //left :0,
        duration : 300,
        curve : Ti.UI.ANIMATION_CURVE_EASE_IN_OUT
    });
    isMenu = false;
} else {
    $.viewBelow.visible=true;
    $.viewBelow.animate({
        left : 0,    
        duration : 300,
        curve : Ti.UI.ANIMATION_CURVE_EASE_IN_OUT
    });
    isMenu = true;
}

} catch(e) {
    Ti.API.info('Exception from index.js ' + e.value);
}}
function openCurrentIssue(e) {
try {

    var url = "http://polymerscommunique.com/api/current_issue.aspx";
    var jsonResponse;
    var response;



    var xhr = Ti.Network.createHTTPClient({
        onload : function() {
            Ti.API.info("Received text: " + this.responseText);
            jsonResponse = JSON.parse(this.responseText);

            $.cImage.image = jsonResponse[0].cover_image_url;
            $.cIssue.text = jsonResponse[0].issue_title;
        },

        onerror : function(e) {
            Ti.API.debug(e.error);
            alert('error');
        },
        timeout : 5000
    });
    xhr.open("GET", url);
    xhr.send();
} catch(e) {
    Ti.API.info('Exception from index.js ' + e.value);
}}
createTableRow = function(args) {
var row = Ti.UI.createTableViewRow();

var parentView = Ti.UI.createView({
    width : Ti.UI.FILL,
    height : 40,
    left : 5
});

var childView = Ti.UI.createView({
    height : Ti.UI.SIZE,
    width : Ti.UI.FILL,
    layout : "horizontal"
});

var image = Ti.UI.createImageView({
    image : args.leftImage,
    width : 18,
    height : 20,
    left : 5
});
childView.add(image);

var title = Ti.UI.createLabel({
    color : "white",
    text : args.title,
    left : 10,
    font : {
        fontSize : 17,
        fontWeight : 'bold'
    }
});
childView.add(title);

parentView.add(childView);
row.add(parentView);

var separator = Ti.UI.createView({
    bottom : 0,
    height : "1dp",
    width : Ti.UI.FILL,
    backgroundColor : "#303030"
});
row.add(separator);

return row;};
var rows = [];
rows.push(createTableRow({
title : 'Current Issue',
leftImage : '/home.png'}));

rows.push(createTableRow({
title : 'Past Issues',
leftImage : '/settings.png'}));

rows.push(createTableRow({
title : 'Subscribe',
leftImage : '/logout.png'}));

$.menuTable.setData(rows);
$.menuTable.addEventListener('click', function(e) {
 if(e.index=="0"){
    Alloy.createController('index', 'just');
}
if (e.index == "1") {
    showsideBar();
    Alloy.createController('pastissues', 'just');
}
else if (e.index == "2") {
    showsideBar();
    Alloy.createController('check','just');
}   });
$.win.open();

从表监听器中还可以看到另外两个文件。 如果还需要,请告诉我。

1 个答案:

答案 0 :(得分:1)

您可以在主窗口控制器中收听后退按钮事件,然后在点击时结束当前活动:

.demo-blog