【问题标题】:Activity slide animation only works when back button is pressed活动幻灯片动画仅在按下后退按钮时有效
【发布时间】:2019-01-01 14:56:56
【问题描述】:

我尝试在进入和退出活动时添加滑动动画,但它仅在按下手机后退按钮时才有效。当按下工具栏中的向上按钮或单独的按钮时,它不起作用。

我尝试将 overridePendingTransition(R.anim.no_anim, R.anim.slide_out_right); 行添加到 onPause() 方法以及 finish() 方法和按钮 OnClick 方法,但它不起作用:/

no_anim.xml:

<?xml version="1.0" encoding="utf-8"?>

<set xmlns:android="http://schemas.android.com/apk/res/android">
    <translate
        android:duration="0"
        android:fromXDelta="0"
        android:toXDelta="0" />
</set>

slide_out_right.xml:

<?xml version="1.0" encoding="utf-8"?>

<set xmlns:android="http://schemas.android.com/apk/res/android">
    <translate
        android:duration="@android:integer/config_longAnimTime"
        android:fromXDelta="0"
        android:toXDelta="100%p" />
</set>

Java:

public void button(View view) {
    Intent intent = new Intent(this, MainActivity.class);
    startActivity(intent);
    overridePendingTransition(R.anim.no_anim, R.anim.slide_out_right);
}

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

@Override
protected void onPause() {
    super.onPause();
    overridePendingTransition(R.anim.no_anim, R.anim.slide_out_right);
}

【问题讨论】:

  • 按照我的回答中的建议使用toolbar.setNavigationOnClickListener();

标签: android animation overridependingtransition


【解决方案1】:

在工具栏中按下向上按钮时可以调用onBackPressed()

【讨论】:

  • 这不是一个好方法! onBackPressed() 应该在我们想要处理 android 中的默认后退按钮点击时调用!如果android希望这样做,为什么他们会添加工具栏上的toolbar.setNavigationOnClickListener()提供返回点击工具?
【解决方案2】:

设置工具栏导航点击监听:

toolbar.setNavigationOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        finish(); //close activity
        overridePendingTransition(R.anim.your_anim, R.anim.your_anim);
    }
});

这肯定行得通!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-08-08
    • 1970-01-01
    • 1970-01-01
    • 2016-10-01
    • 2021-11-28
    • 1970-01-01
    • 1970-01-01
    • 2023-03-29
    相关资源
    最近更新 更多