活动向上滑动

15

我有两个活动。 当我向上滑动屏幕时,我想让我的第一个活动结束。动画应该像活动也在向上滑动一样。就像通知屏幕一样。 这可能吗?在发布此问题之前,我进行了许多谷歌搜索,但没有找到任何信息。

P.S- 我不希望这被视为一个普通问题,因为没有显示任何代码。我只需要一些开始的指引,我完全感到困惑。

3个回答

阿里云服务器只需要99元/年,新老用户同享,点击查看详情
38

在res文件夹中创建一个名为anim的文件夹->

在anim文件夹中创建一个名为slide_up_info.xml的xml文件

<set xmlns:android="http://schemas.android.com/apk/res/android" >
<translate
    android:duration="500"
    android:fromYDelta="100%p"
    android:toYDelta="0" />
</set>

slide_down_info.xml

<set xmlns:android="http://schemas.android.com/apk/res/android" >
<translate
    android:duration="500"
    android:fromYDelta="0%p"
    android:interpolator="@android:anim/accelerate_interpolator"
    android:toYDelta="100%p" />
</set>

no_change.xml

<set xmlns:android="http://schemas.android.com/apk/res/android">
    <translate android:fromYDelta="0%p" android:toYDelta="0" android:duration="500"/>
</set>

现在当你想要激活时,请编写以下代码

Intent intent_info = new Intent(MainActivity.this,ToActivity.class);
startActivity(intent_info);
overridePendingTransition(R.anim.slide_up_info,R.anim.no_change);

用于下行活动动画

Intent intent_home=new Intent(getApplicationContext(), MainActivity.class);
startActivity(intent_home);
overridePendingTransition(R.anim.no_change,R.anim.slide_down_info);

我不明白其中一件事。最后一段代码是做什么的? - rrrocky
对于向下的活动动画,您可以编写最后一个代码块。您可以使用finish()而不是intent,并且还可以覆盖pending。 - PankajAndroid
1
这个程序可以按照我的需求工作,但是它可能会更加流畅;有没有什么方法可以获得一个真正流畅的滑动效果? - Hector
@PankajAndroid:应该是overridePendingTransition(R.anim.slide_down_info,R.anim.no_change); - ajdeguzman
为了使动画更加流畅,使用插值器。例如:<set xmlns:android="http://schemas.android.com/apk/res/android" android:interpolator="@android:anim/accelerate_decelerate_interpolator" > - frostymarvelous

0

可以使用OverridePendingTransition为Activity Launch引入动画。看看这个例子,他们展示了一段示例代码。活动之间的动画

要结束一个活动,可以在第一个活动上调用finish()

要了解SlideUp,可以从GestureDetectoronFlingOnTouchListeneronTouch中检查。


他为什么要调用finish()?他不是使用startActivity启动一个新的Activity吗? - Tourki
从@rockydgeekgod的问题“我想让我的第一个活动在我向上滑动屏幕时结束”,我认为他想关闭第一个活动并将其从后堆栈中删除。如果他不想完成它并想要返回导航,则无需finish()。 - prijupaul

0
你也可以这样做:在你的动画中,重写onAnimationEnd方法,并在其中使用startActivity来在动画结束后启动你的新活动。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,