我正在构建一个带有iPhone标签的应用程序。 在appcelerator网站here
中重述了这个问题当我从纵向更改为横向时,我想要隐藏导航栏。
如果我不切换到另一个标签,它可以正常工作。 但当我在肖像中查看1个标签时, 切换到另一个选项卡,切换到横向视图, 切换回第一个标签, 然后改为后面的肖像 导航栏(window.barImage)全部伸展(达到横向导航栏的大小)
此外,当我删除所有隐藏导航栏的代码时,也会出现同样的问题。
我已尝试在orientationchange上再次设置barImage,但这也无济于事。
网站注意:我在navBar的每个标签上使用相同的图片可能是问题吗?
我用绿色标记了导航栏图像,蓝色部分是图像正常的位置。
另请注意,图像的大小适合导航栏的纵向视图。
代码:
var windowWidth = Ti.Platform.displayCaps.platformWidth;
var catWin = Ti.UI.createWindow({
title:'',
barImage: 'images/barImage.png',
url:'vacancies/categories.js',
width: windowWidth
});
catWin.orientationModes = [
Titanium.UI.PORTRAIT,
Titanium.UI.LANDSCAPE_LEFT,
Titanium.UI.LANDSCAPE_RIGHT
];
Titanium.Gesture.addEventListener('orientationchange', function(e) {
if(e.orientation == Titanium.UI.LANDSCAPE_RIGHT){
catWin.hideNavBar();
} else if(e.orientation == Titanium.UI.LANDSCAPE_LEFT){
catWin.hideNavBar();
} else if(e.orientation == Titanium.UI.PORTRAIT){
catWin.showNavBar();
}
});
答案 0 :(得分:1)
您确实需要发布更多代码,例如我不知道您是否使用Ti.UI.currentWindow.hideNavBar();
,或者仅使用.hide();
和.show();
?
从我可以告诉你的问题然而可能是宽度。尝试将其设置为'100%'
,而不是使用platformWidth
。再一次没有所有相关代码,例如orientationchange
事件,这是我能给出的最佳建议。希望它有所帮助。
第三条评论:可能
Titanium.Gesture.addEventListener('orientationchange', function(e) {
if(e.source.isLandscape()){
catWin.hideNavBar();
} else {
catWin.barImage = 'images/barImage.png';
catWin.showNavBar();
}
});
就在那里的某个地方或标签事件。我会玩弄这个想法,看看它是否会让你更进一步?
答案 1 :(得分:0)
虽然这不是最好的解决方案,因为它看起来仍然有点奇怪(但比以前更好),这是迄今为止最好的解决方案。 我通过使用以下代码找到了某种解决方案:
我在createWindow代码中设置了barImage,所以至少在开始时看起来没问题:
var jbWin = Ti.UI.createWindow({
title: '',
url:'homePage.js',
barImage: 'images/jobbroker_bar.png'
});
然后在orientationchange上我取消设置barImage并开始使用titleImage:
Titanium.Gesture.addEventListener('orientationchange', function(e){
if(e.source.isLandscape()){
catWin.titleImage = '';
catWin.barImage = '';
catWin.hideNavBar();
else if( e.orientation != Ti.UI.FACE_UP && e.orientation != Ti.UI.FACE_DOWN ) {
catWin.titleImage = 'images/jobbroker_bar.png';
catWin.showNavBar();
}
}
答案 2 :(得分:0)
您是否尝试使用导航栏上的“titleControl”来设置图像而不是barImage控件?
你也可以发布一个带有相关图像的小apps.js文件吗?没有运行项目就很难完全掌握问题