gpt4 book ai didi

android - 如何使用 overridePendingTransition() 动画覆盖 onBackPressed()

转载 作者:太空宇宙 更新时间:2023-11-03 11:28:43 25 4
gpt4 key购买 nike

PlayPanel Activity 应在按下后退按钮时以滑动面板的形式关闭到 MainActivity。但是,没有动画。 PlayPanel Activity 正常关闭。

PlayPanel Activity

public class PlayPanel extends AppCompatActivity {

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_play_panel);
}

@Override
public void onBackPressed() {

Intent intent = new Intent(
PlayPanel.this,
MainActivity.class
);

startActivity(intent);

overridePendingTransition(
0,
R.anim.play_panel_close_background
);
}

// onCreateOptionsMenu goes here

// onOptionsItemSelected goes here
}

play_panel_close_background.xml

    <?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<translate
android:fromYDelta="0%"
android:toYDelta="100%"
android:duration="600"
/>
</set>

解决方案:

 @Override
public void onBackPressed() {
super.onBackPressed();
//startActivity(new Intent(this, MainActivity.class));
overridePendingTransition(
0,
R.anim.play_panel_close_outgoing_activity
);
}

最佳答案

我之前实现了相同的动画。此代码有效。请试一试。谢谢。

详细 Activity

public class DetailActivity extends AppCompatActivity {

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_detail);
overridePendingTransition(R.anim.activity_slide_start_enter, R.anim.activity_scale_start_exit);
}

@Override
public void finish() {
super.finish();
overridePendingTransition(R.anim.activity_scale_finish_enter, R.anim.activity_slide_finish_exit);
}

@Override
public void onBackPressed() {
finish();
}
}

activity_slide_start_enter.xml

<set xmlns:android="http://schemas.android.com/apk/res/android"
android:interpolator="@android:anim/decelerate_interpolator"
android:shareInterpolator="false">
<translate
android:duration="200"
android:fromXDelta="100%"
android:fromYDelta="0%"
android:interpolator="@android:anim/accelerate_decelerate_interpolator"
android:toXDelta="0%"
android:toYDelta="0%" />
</set>

activity_scale_start_exit.xml

<set xmlns:android="http://schemas.android.com/apk/res/android"
android:interpolator="@android:anim/decelerate_interpolator"
android:shareInterpolator="false">

<scale
android:duration="200"
android:fromXScale="1.0"
android:fromYScale="1.0"
android:interpolator="@android:anim/accelerate_interpolator"
android:pivotX="50%"
android:pivotY="50%"
android:toXScale="0.9"
android:toYScale="0.9" />

</set>

activity_scale_finish_enter.xml

<set xmlns:android="http://schemas.android.com/apk/res/android"
android:interpolator="@android:anim/decelerate_interpolator"
android:shareInterpolator="false">

<scale
android:duration="200"
android:fromXScale="0.9"
android:fromYScale="0.9"
android:interpolator="@android:anim/accelerate_interpolator"
android:pivotX="50%"
android:pivotY="50%"
android:toXScale="1.0"
android:toYScale="1.0" />

</set>

activity_slide_finish_exit.xml

<set xmlns:android="http://schemas.android.com/apk/res/android"
android:interpolator="@android:anim/decelerate_interpolator"
android:shareInterpolator="false">
<translate
android:duration="200"
android:fromXDelta="0%"
android:fromYDelta="0%"
android:toXDelta="100%"
android:toYDelta="0%" />
</set>

关于android - 如何使用 overridePendingTransition() 动画覆盖 onBackPressed(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32939551/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com