通过 Titanium 在纵向模式下强制 Android 启动画面
Force Android splash screen on Portlait mode by Titanium
我制作的应用程序有四个选项卡,一个使用相机功能。
此选项卡需要两者 portlait/landscape。
其他三个选项卡仅使用纵向模式。
现在我这样设置 iOS
在tiapp.xml
<ios>
<plist>
<dict>
<key>UISupportedInterfaceOrientations~iphone</key>
<array>
<string>UIInterfaceOrientationPortrait</string>
</array>
<key>UISupportedInterfaceOrientations~ipad</key>
<array>
<string>UIInterfaceOrientationPortrait</string>
</array>
</dict>
</plist>
</ios>
然后在 app.js
像这样强制定位。
tabWin1.orientationModes = [Ti.UI.PORTRAIT];
tabWin2.orientationModes = [Ti.UI.PORTRAIT];
tabWin3.orientationModes = [Ti.UI.PORTRAIT];
tabWin4.orientationModes = [Ti.UI.PORTRAIT,Ti.UI.LANDSCAPE_RIGHT,Ti.UI.LANDSCAPE_LEFT];
效果很好。
即使我按住 iPhone 横向并启动应用程序,启动画面也被强制为 portlait 模式。
现在我想在 Android
中做同样的事情
在tiapp.xml
我是这样设置的
<application>
<activity
android:configChanges="keyboardHidden|orientation"
android:name="org.appcelerator.titanium.TiActivity" android:screenOrientation="portrait"/>
<activity
android:configChanges="keyboardHidden|orientation"
android:name="org.appcelerator.titanium.TiTranslucentActivity"
android:screenOrientation="portrait" android:theme="@android:style/Theme.Translucent"/>
<activity
android:configChanges="keyboardHidden|orientation"
android:name="org.appcelerator.titanium.TiModalActivity"
android:screenOrientation="portrait" android:theme="@android:style/Theme.Translucent"/>
<activity
android:configChanges="keyboardHidden|orientation"
android:name="ti.modules.titanium.ui.TiTabActivity" android:screenOrientation="portrait"/>
<activity
android:name="ti.modules.titanium.ui.android.TiPreferencesActivity" android:screenOrientation="portrait"/>
</application>
但是它不会在 portlait 模式下强制启动画面。
我该如何解决?
如果您想在纵向模式下锁定启动画面,您必须锁定 Android Activity(按照此步骤:http://bencoding.com/2016/02/11/android-orientation-locking-for-titanium/)。
但是!如果你这样做,你的整个应用程序将被锁定在纵向。我不认为有什么方法可以在纵向模式下锁定启动画面并在之后将 Window 设置为横向模式(这里有解释:http://docs.appcelerator.com/platform/latest/#!/guide/Orientation-section-29004932_Orientation-LimitingorientationmodesonAndroid)
我制作的应用程序有四个选项卡,一个使用相机功能。
此选项卡需要两者 portlait/landscape。 其他三个选项卡仅使用纵向模式。
现在我这样设置 iOS
在tiapp.xml
<ios>
<plist>
<dict>
<key>UISupportedInterfaceOrientations~iphone</key>
<array>
<string>UIInterfaceOrientationPortrait</string>
</array>
<key>UISupportedInterfaceOrientations~ipad</key>
<array>
<string>UIInterfaceOrientationPortrait</string>
</array>
</dict>
</plist>
</ios>
然后在 app.js
像这样强制定位。
tabWin1.orientationModes = [Ti.UI.PORTRAIT];
tabWin2.orientationModes = [Ti.UI.PORTRAIT];
tabWin3.orientationModes = [Ti.UI.PORTRAIT];
tabWin4.orientationModes = [Ti.UI.PORTRAIT,Ti.UI.LANDSCAPE_RIGHT,Ti.UI.LANDSCAPE_LEFT];
效果很好。 即使我按住 iPhone 横向并启动应用程序,启动画面也被强制为 portlait 模式。
现在我想在 Android
中做同样的事情在tiapp.xml
我是这样设置的
<application>
<activity
android:configChanges="keyboardHidden|orientation"
android:name="org.appcelerator.titanium.TiActivity" android:screenOrientation="portrait"/>
<activity
android:configChanges="keyboardHidden|orientation"
android:name="org.appcelerator.titanium.TiTranslucentActivity"
android:screenOrientation="portrait" android:theme="@android:style/Theme.Translucent"/>
<activity
android:configChanges="keyboardHidden|orientation"
android:name="org.appcelerator.titanium.TiModalActivity"
android:screenOrientation="portrait" android:theme="@android:style/Theme.Translucent"/>
<activity
android:configChanges="keyboardHidden|orientation"
android:name="ti.modules.titanium.ui.TiTabActivity" android:screenOrientation="portrait"/>
<activity
android:name="ti.modules.titanium.ui.android.TiPreferencesActivity" android:screenOrientation="portrait"/>
</application>
但是它不会在 portlait 模式下强制启动画面。
我该如何解决?
如果您想在纵向模式下锁定启动画面,您必须锁定 Android Activity(按照此步骤:http://bencoding.com/2016/02/11/android-orientation-locking-for-titanium/)。
但是!如果你这样做,你的整个应用程序将被锁定在纵向。我不认为有什么方法可以在纵向模式下锁定启动画面并在之后将 Window 设置为横向模式(这里有解释:http://docs.appcelerator.com/platform/latest/#!/guide/Orientation-section-29004932_Orientation-LimitingorientationmodesonAndroid)