Android Appcelerator 中的后退按钮处理
Android Back Button Handling In Appcelerator
我想在 appcelerator 中为父 window 及其后续子视图集成 android 后退按钮功能。我在整个项目中只有一个 window 。其他屏幕是此父级 window 的子级。有什么建议吗?
有 2 个案例您可能感兴趣:
覆盖按下后退按钮的默认行为。
$.window.onBack = function () {
// run your code like change views or whatever you like
};
- 使用Window's onBack property附加后退按钮回调。
- 它将让您控制在 window 上按下后退按钮时会发生什么。
如果您只想听后退按钮按下以及后退按钮按下的默认行为,请使用 Window's androidback event。
$.window.addEventListener('androidback', function (e){});
- 请注意,此方法仍会关闭您正在使用的 window,但会允许您在按下后退按钮时 运行 一些代码。
我相信您正在寻找方法 1。
注意:方法一仅适用于或> SDK 5.5.1.GA。这是 6.0.0.GA 中的重大更改。所以请正确阅读文档并对它们的功能进行一些测试。
添加了代码示例以模拟后退按钮功能。
Alloy.Globals.trackingArray = [];
function addNewView(_controllerName, _args) {
var newView = Alloy.createController(_controllerName, _args).getView();
$.window.add(newView);
// add new view in tracking array.
Alloy.Globals.trackingArray.push(_controllerName);
}
// now use something like this whenever you remove any view using backpress
function onBackPress() {
// remove lastly added view
Alloy.Globals.trackingArray.pop(_controllerName);
// add last opened view to simulate back button feature
var lastAddedView = Alloy.Globals.trackingArray[Alloy.Globals.trackingArray.length - 1];
var tempView = Alloy.createController(lastAddedView).getView();
$.window.add(tempView);
}
这是您如何管理此功能的基础。但请注意这里的一点,您需要注意管理在创建新视图或控制器时传递给的参数。有多种方法可以做到这一点,这取决于您的编码风格。 :)
我想在 appcelerator 中为父 window 及其后续子视图集成 android 后退按钮功能。我在整个项目中只有一个 window 。其他屏幕是此父级 window 的子级。有什么建议吗?
有 2 个案例您可能感兴趣:
覆盖按下后退按钮的默认行为。
$.window.onBack = function () { // run your code like change views or whatever you like };
- 使用Window's onBack property附加后退按钮回调。
- 它将让您控制在 window 上按下后退按钮时会发生什么。
如果您只想听后退按钮按下以及后退按钮按下的默认行为,请使用 Window's androidback event。
$.window.addEventListener('androidback', function (e){});
- 请注意,此方法仍会关闭您正在使用的 window,但会允许您在按下后退按钮时 运行 一些代码。
我相信您正在寻找方法 1。
注意:方法一仅适用于或> SDK 5.5.1.GA。这是 6.0.0.GA 中的重大更改。所以请正确阅读文档并对它们的功能进行一些测试。
添加了代码示例以模拟后退按钮功能。
Alloy.Globals.trackingArray = [];
function addNewView(_controllerName, _args) {
var newView = Alloy.createController(_controllerName, _args).getView();
$.window.add(newView);
// add new view in tracking array.
Alloy.Globals.trackingArray.push(_controllerName);
}
// now use something like this whenever you remove any view using backpress
function onBackPress() {
// remove lastly added view
Alloy.Globals.trackingArray.pop(_controllerName);
// add last opened view to simulate back button feature
var lastAddedView = Alloy.Globals.trackingArray[Alloy.Globals.trackingArray.length - 1];
var tempView = Alloy.createController(lastAddedView).getView();
$.window.add(tempView);
}
这是您如何管理此功能的基础。但请注意这里的一点,您需要注意管理在创建新视图或控制器时传递给的参数。有多种方法可以做到这一点,这取决于您的编码风格。 :)