Appcelerator Titanium:打开没有动画的活动

时间:2014-09-27 14:20:19

标签: android titanium titanium-mobile appcelerator titanium-alloy

在钛合金中,我试图打开一个没有动画的Window控制器。

我所做的是在/platform/android/res/values/activity_no_animation.xml中定义一种新风格:

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <style name="Theme.NoAnimation" parent="android:Theme">
        <item name="android:windowAnimationStyle">@null</item>
    </style>
</resources>

我的控制器文件名是login.js,所以在我的tiapp.xml中我已经定义了这样的活动(如下所述:http://docs.appcelerator.com/titanium/latest/#!/guide/tiapp.xml_and_timodule.xml_Reference-section-29004921_tiapp.xmlandtimodule.xmlReference-activities

<android xmlns:android="http://schemas.android.com/apk/res/android">
    <manifest>
        <application android:theme="@style/Theme.NoActionBar">
            <activity url="login.js" android:theme="@style/Theme.NoAnimation" />
        </application>
        <!-- Need to specify at least API level 11 for Titanium SDK 3.2.x and prior -->
        <uses-sdk android:minSdkVersion="14" android:targetSdkVersion="19"/>
    </manifest>
</android>

但是当应用程序启动时,在启动画面之后我仍然会看到活动动画。我期望的是活动(窗口)只是出现。

我在这里错过了什么?

2 个答案:

答案 0 :(得分:1)

由于某些奇怪的原因,您无法覆盖Titanium中的所有动画。

我已经问过这个问题over here没有成功。

我已尝试修补移动源代码并进行自定义构建。据我所知,是禁用开场动画。关闭动画仍在某些设备上播放。

答案 1 :(得分:0)

我通过从SDK代码向后工作找到了这个,但是当调用Ti.UI.Window.open()来实际打开窗口时,将动画属性设置为false:

win = Ti.UI.createWindow(/* ... */);
win.open({ animated: false });

我不熟悉Alloy,但这应该很容易转化为Alloy。

至少在SDK 5.0.2中有效。