woy*_*aru 154 animation android android-intent android-activity
如何FLAG_ACTIVITY_NO_ANIMATION
在AndroidManifest文件中正确使用Intent标志?我认为我的问题是微不足道的,但我找不到好的例子或解决方案.
<intent-filter>
<data android:name="android.content.Intent.FLAG_ACTIVITY_NO_ANIMATION" />
</intent-filter>
Run Code Online (Sandbox Code Playgroud)
但是,compliator没有报告错误,但是data
不正确.我只想在活动之间切换时禁用动画.我可以getWindow().setWindowAnimations(0);
在onCreate或onResume中使用,但使用flag是更好的方法,不是吗?
我也可以在代码中使用:
Intent intent = new Intent(v.getContext(), newactivity.class);
intent.addFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION);
getContext().startActivity(intent);
Run Code Online (Sandbox Code Playgroud)
但是我想在Android Manifest中使用这个标志.如果从第二个活动返回到第一个活动,也要禁用动画.
小智 253
你可以创造一种风格,
<style name="noAnimTheme" parent="android:Theme">
<item name="android:windowAnimationStyle">@null</item>
</style>
Run Code Online (Sandbox Code Playgroud)
并将其设置为清单中活动的主题:
<activity android:name=".ui.ArticlesActivity" android:theme="@style/noAnimTheme">
</activity>
Run Code Online (Sandbox Code Playgroud)
您还可以定义样式以指定自定义输入和退出动画. http://developer.android.com/reference/android/R.attr.html#windowEnterAnimation
esh*_*azi 177
如果您的上下文是一个活动,您可以调用overridePendingTransition:
在startActivity(Intent)之一或完成之后立即调用以指定要执行的显式转换动画.
所以,以编程方式:
this.startActivity(new Intent(v.getContext(), newactivity.class));
this.overridePendingTransition(0, 0);
Run Code Online (Sandbox Code Playgroud)
小智 38
试试这段代码,
this.startActivity(new Intent(v.getContext(), newactivity.class).addFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION));
Run Code Online (Sandbox Code Playgroud)
Tas*_*ons 23
您也可以在您不希望转换的所有活动中执行此操作:
@Override
public void onPause() {
super.onPause();
overridePendingTransition(0, 0);
}
Run Code Online (Sandbox Code Playgroud)
我喜欢这种方法,因为你不必弄乱你的活动风格.
主题样式中的线条效果很好,但它用白屏代替了动画。尤其是在速度较慢的手机上 - 这真的很烦人。因此,如果您想要即时过渡 - 您可以在主题样式中使用它:
<item name="android:windowAnimationStyle">@null</item>
<item name="android:windowDisablePreview">true</item>
Run Code Online (Sandbox Code Playgroud)
这是一种单行解决方案,适用于minSdkVersion 14
您应该插入的最低限度res/styles.xml
:
<item name="android:windowAnimationStyle">@null</item>
Run Code Online (Sandbox Code Playgroud)
像这样:
<resources>
<!-- Base application theme. -->
<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
...
<item name="android:windowAnimationStyle">@null</item>
</style>
...
</resources>
Run Code Online (Sandbox Code Playgroud)
干杯!
小智 6
启动意图后,您可以使用以下代码:
Intent intent = new Intent(Activity1.this, Activity2.class);
overridePendingTransition(0, 0);
intent.setFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION);
startActivity(intent);
Run Code Online (Sandbox Code Playgroud)
如果使用,意图将在没有动画或过渡的情况下工作
这不是示例用法,也不是用法说明FLAG_ACTIVITY_NO_ANIMATION
,但是它确实回答了如何禁用Activity
切换动画,如问题标题中所问:
归档时间: |
|
查看次数: |
116414 次 |
最近记录: |