我一直在使用 Android 的 overridePendingTransition 方法来为我的活动页面过渡设置动画,并取得了巨大的成功。示例显示
startActivity(new Intent(GetTagActivity.this, MainActivity.class));
overridePendingTransition(R.anim.fade_in, R.anim.fade_out);
Run Code Online (Sandbox Code Playgroud)
我有一种情况需要“刷新”页面并希望淡入淡出过渡。在不深入细节的情况下,我无法使用该StartActivity(...)方法来调用刷新(这将允许动画调用)。
使用recreate()作品完美地“刷新”页面,但是我无法添加过渡动画。这没有奏效。
recreate();
overridePendingTransition(R.anim.fade_in, R.anim.fade_out);
Run Code Online (Sandbox Code Playgroud)
也不是这个
recreate().overridePendingTransition(R.anim.fade_in, R.anim.fade_out);
Run Code Online (Sandbox Code Playgroud)
淡入淡出动画(或任何活动过渡)可以与 recreate() 一起使用吗?
我用来overridePendingTransition从 MainActivity 过渡到 Sub-Activity。该转换将 MainActivity 从右侧移出,并将子活动从左侧移入屏幕。
我需要通过按下按钮来触发转换,而不是通过按下按钮来启动转换。
overridePendingTransition(R.anim.slide_in_left,R.anim.slide_out_right);
Run Code Online (Sandbox Code Playgroud)
更改为overrideActivityTransition上述转换后,不适用于 Android >=34。
overrideActivityTransition(OVERRIDE_TRANSITION_OPEN,R.anim.slide_in_left,R.anim.slide_out_right);
Run Code Online (Sandbox Code Playgroud)
如何恢复 Android 34 下的行为?
谢谢GGK
我正在使用overridePendingTransition来设置我自己的活动转换.一切正常,除了我无法改变动画的持续时间,它被忽略.
slide_down.xml
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
android:interpolator="@android:anim/accelerate_decelerate_interpolator">
<translate
android:duration="2000"
android:fromYDelta="0"
android:toYDelta="100%p"
android:zAdjustment="top"/>
</set>
Run Code Online (Sandbox Code Playgroud)
stay.xml
<?xml version="1.0" encoding="utf-8"?>
<translate xmlns:android="http://schemas.android.com/apk/res/android"
android:duration="2000"
android:fromYDelta="0%p"
android:toYDelta="0%p"
android:zAdjustment="top"/>
Run Code Online (Sandbox Code Playgroud)
持续时间设置为2000毫秒,但动画仍然只是一秒的一小部分.即使将其改为像10000这样的极端值也没有任何作用.
如果我在设置中更改开发人员选项中的动画,则动画持续时间对应于给定的设置.
Java代码供参考:
MainActivity.java
public void games(View view){
startActivity(new Intent(MainActivity.this, GamesActivity.class));
overridePendingTransition(R.anim.slide_up, R.anim.stay);
}
Run Code Online (Sandbox Code Playgroud)
谁有想法?
animation android android-transitions overridependingtransition
我已经创建了一个意图对象以及单击Bundlea 的CardView时间,然后我启动了Activity. 我如何overridePendingTransition在里面声明?代码如下:
@Override
public void onBindViewHolder(final ViewHolder holder, final int position) {
holder.textView.setText(strings[position]);
holder.cardView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent intent = new Intent(holder.itemView.getContext(),SecondActivity.class);
Bundle bundle = new Bundle();
bundle.putString("list",strings[position]);
intent.putExtras(bundle);
holder.itemView.getContext().startActivity(intent);
//overridePendingTransition(R.anim.abc_fade_in,R.anim.abc_fade_out);
}
});
}
Run Code Online (Sandbox Code Playgroud)