Android 自定义从子 Activity 到父 Activity 的转换

标签 android android-activity back-button android-navigation

我有 2 个 Activity ActivityAActivityB父 Activity:

我的 list 文件:

<activity
        android:name=".ActivityA"
        android:launchMode="singleTop" />
    <activity
        android:name=".ActivityB"
        android:parentActivityName=".ActivityA"/>

我改变了从 ActivityAActivityB 的转换:

    final Intent intent = new Intent(this, ActivityB.class);
    startActivity(intent);
    overridePendingTransition(R.anim.push_left_in, R.anim.push_left_out);

这很好用。但现在我还想更改从 ActivityB 返回到 ActivityA 时的过渡。在我的 ActivityB 中,我重写了 finish() 方法,如下所示:

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

问题是 finish() 方法只在按下硬件返回 Button 时被调用,而不是在“返回箭头”(左上角)屏幕)被按下。

我还想要在按下 Button 时自定义 transition

enter image description here

有什么想法吗?

最佳答案

你可以这样做:

@Override
    public boolean onOptionsItemSelected(MenuItem item) {
        switch (item.getItemId()) {
            case android.R.id.home:
                  finish();
                  overridePendingTransition(R.anim.push_right_in, R.anim.push_right_out);

        }
        return super.onOptionsItemSelected(item);
    }

关于Android 自定义从子 Activity 到父 Activity 的转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37591619/

相关文章:

android - API 19 和 21 上的 CardView 灰色

java - Android 在线流媒体应用程序不应在屏幕锁定和解锁时关闭

android-fragments - ViewPager + Fragments 开始新的 Activity

jsf - 通过链接或后退按钮打开时强制 JSF 刷新页面/ View /表单

android - ContentProvider 放置在android clean architecture中

android - 获取 IndexOutOfBoundException : Invalid array range 0 to 0 , 所以上下文 = null,所以应用程序崩溃

java - 在应用程序类中注册时存在广播接收器泄漏的风险

ios - 返回按钮到 tableView

iOS 导航 - 自定义后退按钮或从堆栈中删除 View Controller ?

java - 如何以用户友好的方式过滤错误消息,而无需在 Android 中创建自定义字符串?