Android 活动页面的侧滑进出实现

3
我有一个Android应用程序,其中有九个活动不加载布局文件。它们的视图是扩展View类的私有类。活动在运行时构建视图对象,并使用这些对象而不是布局文件。我遇到的问题是,这些活动创建的视图在切换到其他视图时应该从左侧和右侧滑入和滑出。我以前使用过ViewFlipper,但是我无法在这里使用它,因为ViewFlipper需要布局文件而不是活动。是否有可能解决我的问题,而不必转向布局文件?

你能更明确一些吗,你想以编程的方式实现吗? - An-droid
1
是的,我更喜欢以编程方式完成。 - Sandah Aung
2个回答

8

尝试这些

<?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:fromYDelta="0"
        android:interpolator="@android:anim/linear_interpolator"
        android:toXDelta="-100%"
        android:toYDelta="0" />
</set>

<?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="100%"
        android:fromYDelta="0"
        android:interpolator="@android:anim/linear_interpolator"
        android:toXDelta="0"
        android:toYDelta="0" />
</set>

<?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="-100%"
        android:fromYDelta="0"
        android:interpolator="@android:anim/linear_interpolator"
        android:toXDelta="0"
        android:toYDelta="0" />
</set>

<?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:fromYDelta="0"
        android:interpolator="@android:anim/linear_interpolator"
        android:toXDelta="100%"
        android:toYDelta="0" />
</set>

在代码中执行StartActivity()时

overridePendingTransition(R.animator.anim_left, R.animator.anim_right);

然后在执行finish()时

overridePendingTransition(R.animator.anim_left, R.animator.anim_right);

1
它们是要放置在res/anim目录下的xml文件吗?我是否将overridePending代码放置在finish()和构造函数的重写方法中? - Sandah Aung
每个动画一个文件,当您调用finish/startactivity时,调用overridePendingTransition。 - An-droid
1
这不够清晰。哪一个是正确的动画,哪一个是左边的?为什么有4个文件?这些文件的名称是什么? - Dongle
请按您的意愿命名文件。这些是水平动画,因此您需要查看“delta x”。该值显示您的视图位置与屏幕位置的比较。 - An-droid

7
this.overridePendingTransition(android.R.anim.slide_in_left,
                android.R.anim.slide_out_right);

将其写在您的意图正下方。


谢谢,但这是否意味着我不需要定义动画文件? - Sandah Aung

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