2013-10-03 2 views
0

Android 및 IOS 용 응용 프로그램을 만들고 있습니다. 이 응용 프로그램에는 창이 있습니다. 다른보기를 내용과 함께 추가/제거합니다.티타늄 앱의 일부보기에서 방향을 고정하는 방법

첫 번째보기는 세로 모드에서만 사용하고 나머지보기는 어떤 방향으로도 표시 할 수 있습니다.

어떻게하면됩니까? 티타늄 SDK와

는 IOS에 더 많거나 적은 작동 3.1.2 :

내 창 : 이제

var openWindow = function(e) {  
    appWindow.orientationModes = [Ti.UI.PORTRAIT, Ti.UI.UPSIDE_PORTRAIT, Ti.UI.LANDSCAPE_LEFT, Ti.UI.LANDSCAPE_RIGHT]; 

    if (e.win == 'Home') { 
     Titanium.UI.orientation = Titanium.UI.PORTRAIT; 
     appWindow.orientationModes = [Titanium.UI.PORTRAIT]; 
     orientacion = 0; 
     activeView = Home.Constructor(appWindow); 
    } else if (e.win == 'configuracion') { 
     Titanium.UI.orientation = Titanium.UI.PORTRAIT; 
     orientacion = 0; 
     appWindow.orientationModes = [Titanium.UI.PORTRAIT]; 
     activeView = Configuracion.Constructor(appWindow); 
    } else if (e.win == 'Circle') { 
     activeView = Circle.Constructor(appWindow); 
    } 
    appWindow.add(activeView); 
}; 

: 다음

var appWindow = Titanium.UI.createWindow({  
    top : 0, 
    left : 0, 
    height : utils.getScreenHeight(), 
    width : utils.getScreenWidth(),  
    backgroundColor : "#393a3a", 
    //fullscreen : true,  
    orientationModes : [Ti.UI.PORTRAIT, Ti.UI.UPSIDE_PORTRAIT],  
}); 

, 내가보기를로드 할 때 , IOS 7을 지원하기 위해 SDK 3.1.3을 사용하고 싶지만 작동하지 않습니다.보기를 회전 할 수 없습니다.

내가 어떻게 할 수 있는지 알고 있니?

매우 감사

사용자 정의 AndroidManifest.xml을 만들고위한 screenOrientation 속성을 설정할 수 있습니다

답변

4

내가 운이 없었 너무 런타임에 윈도우 orientationModes 변화와 함께. 문서 창 orientationModes뿐만 아니라 방법 setOrientationModes 창이 열리기 전에 설정해야한다고 말한다.

보기에서보기로 전환하는 것은 옵션이 아닙니까? 당신이 창을 tiapp.xml에서 정의 된 것과 방향이 다른 허용하려면

, 당신은 개별적으로 모든 창에 orientationModes을 설정해야합니다 :

// This window allows orientations defined in tiapp.xml 
var appWin = Ti.UI.createWindow({ 
    backgroundColor = '#FFF' 
}); 
appWin.open(); 

// This window is portrait only 
var win = Ti.UI.createWindow({ 
    backgroundColor: '#FFF', 
    orientationModes: [Ti.UI.PORTRAIT] 
}); 
win.open(); 

// If this window is opened it allows multiple orientations 
var newWindow = Ti.UI.createWindow({ 
    backgroundColor: '#FFF', 
    orientationModes: [Ti.UI.PORTRAIT, Ti.UI.LANDSCAPE_LEFT, Ti.UI.LANDSCAPE_RIGHT] 
}); 
newWindow.open() 

이것은 SDK 3.1.3으로 테스트됩니다.


편집하는
안드로이드에이 일을하려면, 당신은 내가 일부 뷰에서와에서 세로 방향을 고정하려면, 하나가 fullscreen: true 또는

+0

나는 그것을 이토에서 시험해 보았고 훌륭하게 작동합니다. 하지만 안드로이드에서는 작동하지 않습니다. 나는 무엇이라도 더 붙여야합니까? 고맙습니다. –

+0

안드로이드 윈도우의 경우, 'fullscreen : true'를 설정하여 중량 윈도우를 강제 설정할 수 있습니다. – mwfire

+0

안드로이드에서 제목 표시 줄을 표시하지 않으려면 fullscreen : false가 필요합니다. 마지막으로, 다음과 같이 해결했습니다. 전체 화면 : 거짓, \t navBarHidden : 창을 생성 한 후 참 : winPortrait.orientationModes = [Ti.UI.PORTRAIT, Ti.UI.UPSIDE_PORTRAIT]; –

0

activities 당신은 그것만 빼고

android:screenOrientation="portrait" 

더 많은 정보 here 티타늄 SDK 3.1.2 I와

+0

확인 navBarHidden: true을 설정하여 헤비급 창을 강제해야하지만, 다른보기는 모든 방향을 허용합니다. 나는 안드로이드 매니페스트가 모든 앱에 영향을 미친다고 생각하지 않습니까? 나는 안드로이드와 IOS를 원한다. 감사합니다. –

+0

시도해 보지 않았습니다.하지만 액티비티에 대해'screenOrientation'을 설정하지 않으면, 방향 동작을 계속 변경합니다. – ssantos

0

다음 코드를 입력하십시오 :

Titanium.UI.orientation = Titanium.UI.PORTRAIT; 
appWindow.orientationModes = [Titanium.UI.PORTRAIT]; 
다른보기를로드 할 때 16,

다음, 다음 넣어 :

appWindow.orientationModes = [Ti.UI.PORTRAIT, Ti.UI.UPSIDE_PORTRAIT, Ti.UI.LANDSCAPE_LEFT, Ti.UI.LANDSCAPE_RIGHT]; 
+0

이것은 내가 지금 가지고있는 것입니다. SDK 3.1.3에서는 작동하지 않으며 SDK 3.1을 사용하고 싶습니다.3 때문에 내가 문제가 있기 때문에 3 감사합니다. –