Sencha touch 2 后退按钮-在视口中导航

Sencha touch 2 后退按钮-在视口中导航,sencha-touch-2,Sencha Touch 2,我正在向我的应用程序视口添加内容,如下所示: Ext.Viewport.animateActiveItem(item, {transition}) 我正在寻找一种方法让“回到”最后一个视图。这是可能的,还是视口破坏了最后一个视图 为什么不在第一个面板上使用Ext.Viewport.animateActiveItem() 我在这里做到了: 希望这对您有所帮助,那么您为什么不在第一个面板上使用Ext.Viewport.animateActiveItem() 我在这里做到了: 希望这有帮助为什么不使

我正在向我的应用程序视口添加内容,如下所示:

Ext.Viewport.animateActiveItem(item, {transition})

我正在寻找一种方法让“回到”最后一个视图。这是可能的,还是视口破坏了最后一个视图

为什么不在第一个面板上使用
Ext.Viewport.animateActiveItem()

我在这里做到了:


希望这对您有所帮助,那么您为什么不在第一个面板上使用
Ext.Viewport.animateActiveItem()

我在这里做到了:


希望这有帮助

为什么不使用内置的历史支持?可以向历史对象添加条目,如下所示:

this.getApplication().getHistory().add(Ext.create('Ext.app.Action', {
    url: 'dashboard'
}));
调用该函数后,它将更改应用程序的URL哈希。您可以使用控制器中的路由抓取事件。。。将其添加到配置中,如下所示:

config: {
    routes: {
       'dashboard': 'showDashboard'
    },
    control: {
       //controls...
    }
},
Sencha Touch将识别URL更改,并查看您的路由以调用如下函数:

showDashboard: function() {
    Ext.Viewport.animateActiveItem(item, {transition});
},

使用此方法,“本机后退”按钮将带您返回上一个视图,您还可以调用要转到的视图等。。。在此处查看有关历史记录对象的文档:

为什么不使用内置的历史记录支持?可以向历史对象添加条目,如下所示:

this.getApplication().getHistory().add(Ext.create('Ext.app.Action', {
    url: 'dashboard'
}));
调用该函数后,它将更改应用程序的URL哈希。您可以使用控制器中的路由抓取事件。。。将其添加到配置中,如下所示:

config: {
    routes: {
       'dashboard': 'showDashboard'
    },
    control: {
       //controls...
    }
},
Sencha Touch将识别URL更改,并查看您的路由以调用如下函数:

showDashboard: function() {
    Ext.Viewport.animateActiveItem(item, {transition});
},

使用此方法,“本机后退”按钮将带您返回上一个视图,您还可以调用要转到的视图等。。。在此处查看历史记录对象的文档:

Ext.app.Action是一个私有的Sencha类,因此不能保证在将来的版本中存在。一个更好的方法是替换

this.getApplication().getHistory().add(Ext.create('Ext.app.Action', {
    url: 'dashboard'
}));
用这个

this.getApplication().redirectTo('dashboard');
您还可以传递一个模型对象,只要它实现了toUrl()方法

this.getApplication().redirectTo(myModelObj);
如果需要,您现在可以使用以下命令返回:

history.back();
请参阅触摸历史指南:


Ext.app.Action是一个私有的Sencha类,因此不能保证在将来的版本中存在。一个更好的方法是替换

this.getApplication().getHistory().add(Ext.create('Ext.app.Action', {
    url: 'dashboard'
}));
用这个

this.getApplication().redirectTo('dashboard');
您还可以传递一个模型对象,只要它实现了toUrl()方法

this.getApplication().redirectTo(myModelObj);
如果需要,您现在可以使用以下命令返回:

history.back();
请参阅触摸历史指南:


您应该使用一个不是好主意的控件,因为该控件非常不灵活(它总是创建标题栏?)。我们正在基于xml定义动态地创建sencha应用程序/GUI,因此如果视图需要或不需要标题栏,这是不“可预测的”,例如,您应该使用一个非好主意,因为此控件非常不灵活(它总是创建标题栏?)。我们正在基于xml定义非常动态地创建sencha应用程序/GUI,因此如果视图需要标题栏或不需要标题栏,这是不“可预测的”。例如,是的,这当然很容易,这是我的第一个想法。atm的问题是保留最后一个视图的引用,因为我们正在使用非常动态的方法构建应用程序,并且无法预测下一个视图是什么或最后一个视图是什么。我希望有一个简单的方法切换回最后一个视图。如果使用animateActiveItem()添加新内容会发生什么情况?它会破坏旧内容吗?然后,不要直接将它们添加到视口中,只需创建一个具有卡片布局的容器,并将视图添加到此容器中即可。然后,您可以通过获取卡容器中的项目数(activeItem=container.getItems().length)来获取活动索引,并通过调用container.setActiveItem(activeItem-1)来激活最后一个视图,从而轻松切换到最后一个视图。或者你也可以使用旋转木马,它可以让你轻松进入下一个或上一个视图,或者使用导航视图并隐藏标题栏(使用CSS)。我可以混合使用选项卡面板和旋转木马吗?是的,当然很简单,这是我的第一个想法。atm的问题是保留最后一个视图的引用,因为我们正在使用非常动态的方法构建应用程序,并且无法预测下一个视图是什么或最后一个视图是什么。我希望有一个简单的方法切换回最后一个视图。如果使用animateActiveItem()添加新内容会发生什么情况?它会破坏旧内容吗?然后,不要直接将它们添加到视口中,只需创建一个具有卡片布局的容器,并将视图添加到此容器中即可。然后,您可以通过获取卡容器中的项目数(activeItem=container.getItems().length)来获取活动索引,并通过调用container.setActiveItem(activeItem-1)来激活最后一个视图,从而轻松切换到最后一个视图。或者你也可以使用旋转木马,它可以让你轻松地进入下一个或上一个视图,或者使用导航视图并隐藏标题栏(使用CSS)。我可以混合使用选项卡面板和旋转木马吗?嗯,这需要xml中的一些附加信息,因为我需要在某处定义路线。谢谢你的提示,我会考虑一下。嗯,这需要xml中的一些附加信息,因为我需要在某个地方定义路由。谢谢你的提示,我会考虑的。