标签: overridependingtransition

将 overridePendingTransition 与 recreate() 结合使用。可以做到吗?

我一直在使用 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() 一起使用吗?

animation android recreate overridependingtransition

7
推荐指数
1
解决办法
942
查看次数

使用 overrideActivityTransition 进行活动转换在 Android 34 中不起作用

我用来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

java android android-activity overridependingtransition

6
推荐指数
1
解决办法
757
查看次数

overridePendingTransition持续时间被忽略

我正在使用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

5
推荐指数
1
解决办法
646
查看次数

如何在 RecyclerView 适配器的 onBindViewHolder 中声明 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)

android android-recyclerview overridependingtransition

4
推荐指数
1
解决办法
5064
查看次数