1

我是 Sencha 的新手。谁能解释一下如何使用 Sencha touch2 Routing 在 android 中支持后退按钮。我已经浏览了 Sencha 文档,他们在那里解释了诸如“#products/123”之类的场景。但在我的情况下,只有视图会改变而不是总是像“../index.html”的url。

让我们考虑一下我有一个登录页面。在登录按钮点击它导航到主页。现在在设备后退按钮上点击它应该导航回登录。那么我应该在路由中输入什么格式:{}。

请任何人用简单的代码解释我。

提前致谢。

4

3 回答 3

0

在您的按钮操作中,您应该像这样重定向:

 control: {
        'button[action=login]' : {
            tap: function() {
                this.redirectTo('login');
            }
        }

然后在控制器中添加路由:

config: {
    refs: {
        main: 'main'
    },

    routes: {
        'login': 'showLogin'
    }
}

最后在 showDetail 函数中更改视图,url 应该显示类似 index.html#detail 的内容:

showLogin: function() {
    this.getMain().push({
        xtype: 'loginView'
    });
}

我希望这有帮助!

于 2012-08-17T23:01:16.433 回答
0

在做了很多谷歌搜索之后,终于用适当的例子得到了答案。所以这是供参考http://thanksmister.com/?p_=336

于 2012-08-20T13:08:18.933 回答
0

您还可以通过定义后退按钮及其引用来更好地控制自己,而不是使用默认值。

Ext.define('Mov.view.BackButton', {
    extend: 'Ext.Button',
    alias: 'widget.backbutton',

    config: {
        hidden: true,
        id: 'back',
        ui: 'back',
        text: 'Back',
        backStack: {

        }
    },

    addToBackStack: function(dispatchOptions) {
        var found = false;
        this.backStack.forEach(function(el) {
            found = found || (Ext.encode(el) == Ext.encode(dispatchOptions));
        });
        if (!found) {
            this.backStack.push(dispatchOptions);
        }
        this.show();
    },

    clearBackStack: function() {
        this.backStack = [];
        this.hide();
    },

    handler: function(button, event) {
        var dispatchOptions = this.backStack.pop();

        Ext.dispatch(dispatchOptions);

        if(this.backStack.length === 0) {
            this.hide();
        }
    }
});

然后在应用程序的导航栏上应用此小部件。(初始视图的 onInitialize 效果很好)。

nav = this.getNavigationBar(),
nav.setBackButton(Ext.widget('backbutton'));

@jurodr 有一个很好的路由、引用和控制示例,它与这个自定义组件配合得很好。

于 2013-08-28T05:32:17.117 回答