3

希望快速提问......我只是在文档中找不到这个,这可能意味着我不应该这样做。

假设我有一个“源”控制器和一个“源”视图。

通常我会做这样的事情:

var sources = Alloy.createController('source');
$.index.add(sources.getView());

现在,我希望消息来源根据 ipad 的方向有不同的视图。但它仍然是相同的信息,只是布局略有不同。

我想我也许可以做这样的事情:

var sources = Alloy.createController('source');
Ti.Gestures.addEventListener( "orientationchange", function(){
    if(Ti.Gestures.isPortrait()){
       $.index.add( sources.getView('sources/portrait') );
    }else{
       $.index.add( sources.getView('sources/landscape') );
    }
});

显然我必须删除我不使用的视图,但这是一般的想法。

有没有办法做到这一点?

4

1 回答 1

0

我推荐后一种方法(隐藏/显示),而不是向堆栈添加更多视图。考虑一个带有 AJAX 和响应式设计的传统 HTML 网页——您可以使用 JS/CSS 来完成此操作,而不是重新加载页面。

假设您只想要一个额外的横向视图

XML: <View id="ExtraLandscapeView">...<View>

技术支持: "#ExtraLandscapeView" : { /* Styles here */ }

JS:

if(Ti.Gestures.isPortrait()){
    $.ExtraLandscapeView.visible = false;
} else{
   $.ExtraLandscapeView.visible = true;
}
于 2012-11-08T04:08:23.820 回答