- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在开发一个包含许多代表阶段的 Activity 的应用程序。因此有 Stage1Activity、Stage2Activity、Stage3Activity 等。每个 Activity 都有一个按钮(或多个按钮),一旦单击这些按钮,用户就会转到下一个 Activity 。我想做的是让这些 Activity 之间的过渡充满活力。
我在 res/anim 文件夹中添加了两个 XML 文件。 push_left_in.xml:
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<translate android:fromXDelta="100%p" android:toXDelta="0" android:duration="300"/>
<alpha android:fromAlpha="0.0" android:toAlpha="1.0" android:duration="300" />
</set>
还有 push_left_out.xml:
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<translate android:fromXDelta="0" android:toXDelta="-100%p" android:duration="300"/>
<alpha android:fromAlpha="1.0" android:toAlpha="0.0" android:duration="300" />
</set>
在主 Activity Stage1Activity 中,我有:
public class Stage1Activity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_stage1);
overridePendingTransition(R.anim.push_left_in, R.anim.push_left_out);
}
@Override
public boolean onKeyDown(int keyCode, KeyEvent event){
if (keyCode == KeyEvent.KEYCODE_BACK){
finish();
overridePendingTransition(R.anim.push_left_in, R.anim.push_left_out);
return true;
}
return super.onKeyDown(keyCode, event);
}
}
现在,当我在 Activity 中移动时,过渡会正常进行。新 Activity 将旧 Activity 从右向左推到视野之外。当用户按下他们设备上的后退按钮时,我想要一个反向效果,但是会播放相同的过渡动画。我玩过 android:fromXDelta 标签并取得了一些非常奇怪的结果,但我只是不知道如何设置它,以便在按下设备上的后退按钮时,新 Activity (实际上是新调用的旧 Activity ) ) 从左向右推出旧的。
基本上,我想让它看起来像是您在通过各个阶段时向右移动,但是当您向后按时,它应该看起来像是您返回(向左)。抱歉,这是一个愚蠢的问题,但我真的很困惑,我需要帮助:/
最佳答案
我想回答我自己的问题有点笨……但我想我自己收拾烂摊子才合适。我做了一些更广泛的研究并尝试了代码,我很自豪地说我已经解决了这个问题。以下是解决方案,供可能需要它的任何人引用。
此应用程序需要四个动画。首先,单击 Stage1Activity 上的按钮后,我想向左滑动并淡出该 Activity ,同时从右向左滑动 Stage2Activity。这需要两个 XML 文件:
push_left_in.xml
<set xmlns:android="http://schemas.android.com/apk/res/android">
<translate android:fromXDelta="100%" android:toXDelta="0" android:duration="500"/>
<alpha android:fromAlpha="0.0" android:toAlpha="1.0" android:duration="500" />
</set>
push_left_out.xml
<set xmlns:android="http://schemas.android.com/apk/res/android">
<translate android:fromXDelta="0" android:toXDelta="-100%" android:duration="500"/>
<alpha android:fromAlpha="1.0" android:toAlpha="0.0" android:duration="500" />
</set>
这两个文件在 overridePendingTransition(R.anim.push_left_in, R.anim.push_left_out);
命令中调用,位于 onCreate
中,就在 下方设置内容 View
。一个将旧 Activity 推出,另一个将新 Activity 推出。现在我只需要在设备上按下“后退”按钮时产生相反的效果。这需要一个全新的动画(我没有马上得到的东西)。
所以我又添加了两个 XML 文件:
push_right_in.xml
<set xmlns:android="http://schemas.android.com/apk/res/android">
<translate android:fromXDelta="0" android:toXDelta="100%" android:duration="500"/>
<alpha android:fromAlpha="1.0" android:toAlpha="0.0" android:duration="500" />
</set>
push_right_out.xml
<set xmlns:android="http://schemas.android.com/apk/res/android">
<translate android:fromXDelta="-100%" android:toXDelta="0" android:duration="500"/>
<alpha android:fromAlpha="0.0" android:toAlpha="1.0" android:duration="500" />
</set>
这两个文件在 overridePendingTransition(R.anim.push_right_in, R.anim.push_right_out);
中调用,放置在 onKeyDown
方法中用于后退按钮响应.一个将旧 Activity 滑出,另一个将新 Activity 滑入 - 但与前一个动画相比方向相反。也不要忘记更改 alpha 值,因为这发生在我身上,哈哈
无论如何,这个问题现在已经结束了。抱歉,添麻烦了!或者不是,因为我至少为此获得了 Tumbleweed 成就 XD
关于animation - Activity 之间的插入/推出动画,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17012996/
我有一个传统上作为 MSI 文件提供的产品。它由我们的各种客户通过某种形式的 SMS 推送部署到数千个桌面。我们用来创建这些安装程序的软件正在使用中,我们正在寻找替换它。由于我们支持许多操作系统,我们
我们有一个使用 Gradle/Android Studio 构建的 Android 应用程序,并使用 JaCoCo 为我们的单元测试生成代码覆盖率报告;这很好用。我们也有兴趣能够为手动测试生成覆盖率报
我正在寻找有关数据库脚本修改的最佳实践的见解,这些修改与软件系统的其他代码更改一起进行。 我曾经在一家公司工作,该公司坚持每次推出都要准备好回滚,以防出现问题。这听起来很合理,但在我看来,通过脚本部署
我使用下面的代码通过 Intent 启动 Twitter,但它不起作用。我的手机上安装了 twitter 应用程序。 Intent shareIntent = new Intent(android.c
我用 1Password存储我的密码,以及 fluid.app创建一些特定于站点的应用程序/浏览器 虽然 1Password与 Chrome、Safari 和其他浏览器很好地集成,它不能很好地与 Fl
我如何启动 google maps transit get directions,以便当我按坐标或地点名称输入源和目的地时,google maps 会建议公交(公交路线)方向。这是骑自行车的代码,但我
我已经为 Android 应用程序开发了一个 SDK。我们有很多客户在应用程序中使用这个 SDK。现在我已经更新了我的 SDK。我正在寻找一种方法可以在应用程序中反射(reflect)这些更改,而无需
我有一个带 child 的 flex 容器,每个 child 都有一些内容(没有固定宽度的),并且在一个 child 上我使用 flex-grow: 1;将其填充到剩余的可用空间。 有时,正在成长的
我们即将推出使用 java web start 构建的客户端服务器应用程序。我们的主服务器位于欧洲的一个国家,第一天就会有许多用户从世界各地下载我们的客户端。由于客户端应用程序相当大(MB),因此我们
我已经尝试了很多组合,而这个是最接近我需要的组合。 我需要的是一个图像 (img1),上面有另一个(较小的)图像 (img2),当我翻转 img1 时,我希望它淡入(并在滚出时淡出),而 img2 保
北京时间 1 月 21 日晚间消息,知情人士今日称,苹果公司的首款 VR/AR(虚拟现实 / 增强现实)头显将是一款昂贵的小众产品,有望于 2022 年推出。这款产品主要为了将来更主流的 “AR
搜索 Apple Pay/Passkit/Wallet 文档,我发现代码示例很少,文档也很差。我们尝试提供我们已配置的支付通行证,而不仅仅是使用 openPaymentSetup() 启动钱包。 根据
我需要这个用于 API11 之前的项目。 我正在寻找一种从右侧添加 View 的方法,这将导致当前全屏 View 向左移出,以便在屏幕中显示新 View 。 新 View 大约是屏幕宽度的 1/3,这
Electron v1.8.2 Spectron v3.8.0 添加光谱测试,但即使是非常基本的测试也会失败。 尝试运行: const { Application } = require('spect
这是我最简单的问题。让我试着把它弄清楚。 我有一个 div,在本例中称为 "testdiv",它附加了一个类名 "menulink"。 div 中有一个链接。当我滚动链接时,我希望 div 类更改为
我想将 li 元素排列在任意数量的列中。 Yellow Block Red Block Green
我试图将 child 推到 parent 的盒子外面,但是,似乎 parent 只是在长度上扩展并获得一个滚动条,所以 child 留在里面,并且在 parent 外面不可见。 .parent {
Google Play 游戏服务:SIGN_IN 状态:ERROR_NOT_AUTHORIZED,推出 Beta 版时。还有这个:- W Auth : [GetToken] GetToken f
我正在尝试使用 Jetpack Compose,但我对 Row 的行为感到困惑。我在图标按钮旁边有一个文本,我希望图标按钮锚定在最小宽度为 48dp 的一侧,并在其周围环绕文本。像这样: 但是文本没有
我从第四行的字符 1 中收到上述错误...不知道是什么抛出了它?我确信这是我看不到的简单事情...... out = out + "Select Box Information The name of
我是一名优秀的程序员,十分优秀!