3

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

所以我不想像“只让应用程序以特定方向运行”那样“禁用旋转”(在我的情况下是纵向模式)

干杯

4

2 回答 2

5

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

loginWin = Ti.UI.createWindow({
  orientationModes: [Ti.UI.PORTRAIT]
});
// Required to fix Android still?
loginWin.orientationModes = [Ti.UI.PORTRAIT];
于 2012-10-22T20:42:25.420 回答
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 元素处于同一级别

IE

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

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

于 2012-11-04T23:35:50.703 回答