通过 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