2013-07-25 86 views
3

我有一个Android应用程序,其中九个活动不加载布局文件。他们的观点是延伸View类的私人类。该活动在运行时构造视图对象,并使用这些对象而不是布局文件。我遇到的问题是,创建这些活动的视图在切换到其他视图时应滑入并左右滑动。我之前使用过ViewFlipper,但由于视图脚本采用布局文件而不是活动,因此我无法满足我的需求。有没有可能在不解决切换到布局文件的情况下解决我的问题?Android滑入滑出活动

+0

更加清晰的时候,所以要以编程方式进行? –

+1

是的。我更喜欢它编程式地完成。 –

回答

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

把它写在你的意图下方。

+0

谢谢,但这是否意味着我不必定义动画文件? –

+1

你不必定义任何动画文件。这是默认的Android动画.. –

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); 

,然后做面漆()

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

他们是将XML文件放置在res/anim目录中吗?我是否将overridePending代码放在finish()和构造函数的重写方法中? –

+0

每个动画只有一个文件,当您调用完成/启动时调用overridePendingTransition –

+1

这还不够清楚。哪一个是正确的动画和哪一个剩下的?为什么有四个文件?这些文件的名称是什么? – Dongle