更改 Android 上活动动画的 z 顺序

2024-04-18

有没有办法反转活动动画的 z 顺序?基本上,当您启动新活动时,它会被添加到后台堆栈,并且其窗口会添加到前一个活动的窗口上。有时稍后返回时,从后台堆栈获取的活动会在顶部活动下方显示其窗口。大多数时候这是完全有道理的,但我对这种行为有以下问题。

我有一个小部件,它指向应用程序结构深处的某个位置。因此,当用户单击操作栏中的向上按钮时,我必须手动创建返回堆栈。但后来我实际上用新意图调用 startActivity ,指向一个附加了后堆栈的新活动..这里我们讨论问题..该 actvity 实际上是从顶部开始动画的,而不是像往常一样从后堆栈弹出时动画标准方式。

you can see the flow on the following picture enter image description here

这是我如何重新创建任务返回堆栈并将用户导航到父活动的代码片段。同样在下面,您可以看到动画的屏幕截图。基本上,顶部的窗口应该位于底部(它在应用程序层次结构中较高)。仅供参考,所有这些动画都是通过标准 XML 窗口动画完成的,并通过 overridePendingTransition 调用触发。我尝试修改这些动画中的 z 调整,但它似乎只影响一个特定动画中的各个图层。

if (NavUtils.shouldUpRecreateTask(this, upIntent)) {
       NavUtils.navigateUpTo(this, upIntent);
} else {
      TaskStackBuilder.create(this)
                        .addNextIntentWithParentStack(upIntent)
                        .startActivities();

}


老问题,但我也遇到过同样的问题。解决办法是添加属性android:zAdjustment="top" or android:zAdjustment="bottom"在我们的动画定义中。例子:

Nothing_background.xml

<?xml version="1.0" encoding="utf-8"?>
  <translate
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:zAdjustment="bottom"
    android:duration="400"
    android:fromXDelta="0%p"
    android:toXDelta="0%p" >
  </translate>

fade_in_foreground.xml

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
     android:zAdjustment="top">
    <alpha
        android:fromAlpha="0.0"
        android:toAlpha="1.0"
        android:interpolator="@android:anim/accelerate_interpolator"
        android:duration="400" />
</set>

在触发转换的代码中:

Intent intent = new Intent(FromActivity.this, ToActivity.class);
Bundle animate = ActivityOptions.makeCustomAnimation(getApplicationContext(),
  R.anim.nothing_background, R.anim.fade_in_foreground).toBundle();
startActivity(intent, animate);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

更改 Android 上活动动画的 z 顺序 的相关文章

  • Android - 创建后台服务来接收PubNub消息

    我正在使用 PubNub API 来获取实时消息 我已经实现了代码来订阅我的频道并接收持续的消息 我只想在后台接收这些消息 即使我的应用程序未打开 我已经了解了 android 中的服务和广播接收器 但我不明白如何在 PubNub 中使用它
  • 无法导入静态 android.support.test.espresso.contrib.DrawerMatchers.isOpen;

    我正在使用 espresso 来测试我的 Android 应用程序 当我尝试为导航抽屉菜单编写测试用例时 我无法导入其中任何一个 import static android support test espresso contrib Dra
  • 在列表视图/滚动视图中自动播放视频,类似于 facebook

    如果视图包含视频 我需要视频在列表视图 滚动视图中自动播放 这与 Facebook 非常相似 如果用户向下滚动并且可见区域包含视频 系统将播放视频 如果仍然滚动 则会自动停止该视频 它应该像一次播放一个视频一样工作 有人可以帮我解决这个问题
  • OkHttp + 毕加索 + 改造

    问题是如何将所有这些结合起来3一个项目中的库 制作一个 OkHttpClient 作为 Picasso 和 Retrofit 的背景层 如何像 Volley 库中那样进行优先级更改 用于分页 简而言之 OkHttpClient okHttp
  • Android:Notification.DEFAULT_VIBRATE是否需要振动权限?

    有时我读到 notification defaults Notification DEFAULT VIBRATE and notification defaults Notification DEFAULT ALL 需要振动权限
  • 在 SVN 存储库中导入 Android Studio 项目的正确方法是什么?

    我正在尝试在 SVN 存储库中导入 Android Studio 项目 我显然尝试过 VCS gt 导入到版本控制 gt 导入到 Subversion 但问题是 即使取消选中Include ignored resources框内 软件不断将
  • 如何为导航抽屉的菜单项赋予颜色?

    我正在创建导航抽屉 我看到 Play 商店有彩色菜单图标 我想知道我该怎么做 我尝试在菜单图标上按颜色过滤器应用颜色 但应用程序强制关闭 这是我的代码 menu menu
  • 如何将 OpenCV 等待键与 Chaquopy 一起使用

    我正在尝试使用 Chaquopy 将计算机视觉应用程序移植到 Android 当我尝试运行脚本时 以下行中出现以下错误 cv2 waitKey 100 打印到嵌入式 python 控制台的错误是 java chaquopy CQPEnv c
  • Android 模拟器 x86 HAXM GPU Windows 7 崩溃 BSOD

    我不懂英语 但我会尽力解释 我使用最新版本的 Android SDK 从 AVD Manager 模拟器 intel x86 和 intel HAXM 运行 它工作正常 但是当我启用主机 GPU 时 Windows 7 崩溃 BSOD 这种
  • android 录音时可以静音吗

    我想构建一个应用程序 我想在通话中调制声音 我编写了一段代码来记录声音并以不同的音调播放它 现在我想要在通话时使用此功能 我想将通话静音 记录声音然后以不同的音调播放它 如何将通话静音但仍录制音频 此答案可在通话期间使麦克风静音 Boole
  • Android - ListView 不接收带有可点击链接的文本视图的 OnItemClick

    我有一个 ListView 除了许多其他视图之外 每行还包含一个 TextView TextView 呈现可能包含链接的 html 内容 以下代码出现在列表适配器中 m textview setMovementMethod LinkMove
  • Android TableLayout 宽度

    我有两列TableLayout作为滚动视图的唯一子视图 第一列包含TextViews labels 并且第二列包含EditText Spinner DateWidget等等 价值观 尽管我已指定android layout width fi
  • 如何在 Android 中将一种跨度类型更改为另一种跨度类型?

    我想将一种类型的所有跨度放入一个CharSequence并将它们转换为不同的类型 例如 将所有粗体跨度转换为下划线跨度 我该怎么做呢 这是我今天遇到的问题 既然我现在已经解决了 我在这里添加一个问答对 我的答案如下 如何将跨度从一种类型更改
  • device_admin_sample.xml 放在哪里?

    在哪里放置 device admin sample xml 无论我把它放在哪里 它都会给出错误 device admin sample xml
  • Samsung Tab2 中的 SQLite 数据库(外部 Micro SD 卡)

    这些是我的 SAMSUNG TAB2 中的内存 1 Internal 2 Sdcard 3 Extrenal sdcard 可移动内存 不要混淆sdcard and Extrenal sdcard Extrenal sdcard is mi
  • 预期为 BEGIN_ARRAY,但实际为 BEGIN_OBJECT |数组列表问题

    我正在使用 Gson 库来保存和检索玩家对象的 ArrayList 我的 onStop Override protected void onStop super onStop SharedPreferences prefs getShare
  • Android 从相机预览中解码位图

    我正在尝试从相机预览中获取位图图像 我将在执行面部检测后对其进行一些处理并绘制一些叠加层 环顾四周后 我发现 onPreviewFrame 获取的字节数组无法直接解码为位图 需要使用 YuvImage 将其转换为正确的像素格式 而这正是我所
  • 在不同的任务中启动一个新的 Android Activity

    这是一个有点复杂的故事 我有一个Activity A Activity A使用意图打开浏览器来进行一些身份验证 完成此操作后 网页将重定向到 URL Activity B使用意图过滤器将其设置为可浏览 并且 URL 使得浏览器启动Activ
  • 使用 ADB 或 java 代码更改默认的 Android 键盘

    我正在构建一个使用特定键盘的自定义应用程序 因此当用户运行该应用程序时 默认键盘应更改为我的特定键盘 名称为黑客键盘 我如何使用java代码或从java代码调用adb命令来做到这一点 我的设备已获得 root 权限 这又是特定的应用程序 而
  • 指针问题! (安卓)

    我在 onTouch 方法中遇到多个指针的问题 所有指针都与一个布尔值相关联 如果向下则为 true 如果向上则为 false 非常重要的是 如果一个指针从 true 变为 false 它不会影响其他布尔值 我遇到的问题是 例如 当指针 1

随机推荐