钛禁用装置旋转&修复所以只显示一种模式

时间:2012-10-22 16:17:08

标签: titanium

如何在所有移动平台上的钛应用中修复设备旋转?任何对官方doco的引用都会非常有用!

所以我不想那么多“禁用旋转”,因为“只允许应用程序以特定方向运行”(在我的情况下是纵向模式)

欢呼声

2 个答案:

答案 0 :(得分:5)

目前官方网站已关闭,但您希望查找“定位模式”。以下代码将我的窗口锁定为仅在我的应用程序中的纵向模式。

loginWin = Ti.UI.createWindow({
  orientationModes: [Ti.UI.PORTRAIT]
});
// Required to fix Android still?
loginWin.orientationModes = [Ti.UI.PORTRAIT];

答案 1 :(得分:4)

全面回答 - 当加载屏幕启动时,这仍然会允许方向更改。钛似乎把这个靠近他们的胸部,但是这里有:

在tiap.xml文件中,您需要更改第一个缩进级别的android元素

<android xmlns:android="http://schemas.android.com/apk/res/android">
    <manifest>
        <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>
    </manifest>
</android>

上面的代码可以放入(当然首先删除现有的android元素!)并且应该可以工作。

这里的诀窍是使用

android:screenOrientation="portrait" 

将方向设置为纵向。当然,另一种选择是“风景”。我想如果你把它解决了,默认行为是允许方向切换。

iOS当然更容易。

在同一个tiapp.xml文件中,您需要

<ios>
    <plist>
        <dict>
            <key>UISupportedInterfaceOrientations</key>
            <array>
                <string>UIInterfaceOrientationPortrait</string>
            </array>
        </dict>
    </plist>
</ios>

这将替换当前ios元素中的任何内容,并且与android元素

处于同一级别

<?xml version="1.0" encoding="UTF-8"?>
<ti:app xmlns:ti="http://ti.appcelerator.org">
    ...
    <ios>
        ...
    </ios>
    <android>
        ...
    </android>
</ti:app>

我仍然不知道如何阻止android(可能还有ios)重新定位启动画面,如果有人知道怎么让我知道这个秘密!!!