希望快速提问......我在文档中找不到这个可能意味着我不应该这样做。
假设我有一个“源”控制器和一个“源”视图。
通常我会做这样的事情:
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') );
}
});
显然我必须删除我没有使用的视图,但这是一般的想法。
有办法做到这一点吗?
答案 0 :(得分:0)
我建议使用后一种方法(隐藏/显示),而不是向堆栈添加更多视图。考虑一下使用AJAX和响应式设计的传统HTML网页 - 您可以使用JS / CSS执行此操作,而不是重新加载页面。
假设您只想要一个额外的景观视图
XML:
<View id="ExtraLandscapeView">...<View>
TSS:
"#ExtraLandscapeView" : { /* Styles here */ }
JS:
if(Ti.Gestures.isPortrait()){
$.ExtraLandscapeView.visible = false;
} else{
$.ExtraLandscapeView.visible = true;
}